From e08bea13365e4c2d92b1ea5bd13e35d5a411a17b Mon Sep 17 00:00:00 2001 From: Christian Stimming Date: Mon, 24 Oct 2011 07:59:30 +0000 Subject: [PATCH] [Cutecash] Prepare cutecash for integration of the glibmm wrappers of the engine objects. This would be an excellent test case for those wrappers... git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21485 57a11ea4-9604-0410-9ed3-97b8803252fd --- CMakeLists.txt | 1 + src/CMakeLists.txt | 1 + src/gnc/CMakeLists.txt | 6 ++++ src/gnc/main.cpp | 9 ++++++ src/optional/gtkmm/CMakeLists.txt | 50 +++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 src/optional/gtkmm/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index ef0a5defa3..a4601cce9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,7 @@ PKG_CHECK_MODULES (GCONF2 gconf-2.0>=2.22) PKG_CHECK_MODULES (GOBJECT gobject-2.0>=2.20) PKG_CHECK_MODULES (GMODULE gmodule-2.0>=2.20) PKG_CHECK_MODULES (GTHREAD gthread-2.0>=2.20) +PKG_CHECK_MODULES (GLIBMM glibmm-2.4>=2.24) IF (MSVC) MESSAGE (STATUS "Hint: To create the import libraries for the gnome DLLs (e.g. gconf-2.lib), use the dlltool as follows: pexports bin/libgconf-2-4.dll > lib/libgconf-2.def ; dlltool -d lib/libgconf-2.def -D bin/libgconf-2-4.dll -l lib/gconf-2.lib") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 72fc1463e6..4951886236 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -95,6 +95,7 @@ IF (WITH_SQL) ADD_SUBDIRECTORY (backend/dbi) ADD_SUBDIRECTORY (backend/sql) ENDIF (WITH_SQL) +ADD_SUBDIRECTORY (optional/gtkmm) ADD_SUBDIRECTORY (gnc) diff --git a/src/gnc/CMakeLists.txt b/src/gnc/CMakeLists.txt index f2f474a6df..4fb307ebf1 100644 --- a/src/gnc/CMakeLists.txt +++ b/src/gnc/CMakeLists.txt @@ -8,6 +8,7 @@ LINK_DIRECTORIES (${GLIB2_LIBRARY_DIRS} ${GTHREAD_LIBRARY_DIRS} ${GCONF2_LIBRARY_DIRS} ${GUILE_LIBRARY_DIRS} + ${GLIBMM_LIBRARY_DIRS} # ${GWENHYWFAR_LIBRARY_DIRS} # ${AQBANKING_LIBRARY_DIRS} ) @@ -86,6 +87,7 @@ QT4_WRAP_CPP (gnc_MOC_SOURCES ${gnc_QOBJECT_HEADERS}) QT4_WRAP_UI (gnc_FORMS_HEADERS ${gnc_FORMS}) INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${GLIBMM_INCLUDE_DIRS}) INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH}) INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH}) INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS}) @@ -95,6 +97,7 @@ INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-glib-utils.h INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine) # for gnc-glib-utils.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/optional/gtkmm) INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/backend/xml) INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src/engine) # for swig-runtime.h INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for ui_mainwindow.h @@ -120,7 +123,10 @@ IF (WITH_AQBANKING) TARGET_LINK_LIBRARIES (cutecash gnc-aqbanking) # TARGET_LINK_LIBRARIES (cutecash ${AQBANKING_LIBRARIES} ${GWENHYWFAR_LIBRARIES}) ENDIF (WITH_AQBANKING) +#TARGET_LINK_LIBRARIES (cutecash libgncmod-gtkmm) # requires replacing the qt-based engine wrappers TARGET_LINK_LIBRARIES (cutecash engine gnc-module core-utils qof) + +TARGET_LINK_LIBRARIES (cutecash ${GLIBMM_LIBRARIES}) TARGET_LINK_LIBRARIES (cutecash ${GCONF2_LIBRARIES}) TARGET_LINK_LIBRARIES (cutecash ${GTHREAD_LIBRARIES} ${GOBJECT_LIBRARIES} ${GMODULE_LIBRARIES} ${GLIB2_LIBRARIES}) TARGET_LINK_LIBRARIES (cutecash ${GUILE_LIBRARIES}) diff --git a/src/gnc/main.cpp b/src/gnc/main.cpp index b25c475028..f378fcaf4a 100644 --- a/src/gnc/main.cpp +++ b/src/gnc/main.cpp @@ -58,6 +58,11 @@ extern "C" # include #endif +// Glibmm includes +#include +#include "gncmm/wrap_init.hpp" + +// Qt includes #include #include "mainwindow.hpp" @@ -172,6 +177,10 @@ main(int argc, char ** argv) gnc_module_system_init(); gnc_engine_init_static(argc, argv); + // Initialize glibmm + Glib::init(); + //gnc::wrap_init(); // requires replacing the qt-based engine wrappers + // Call the statically-linked versions of the backend init // functions gnc_module_init_backend_xml(); diff --git a/src/optional/gtkmm/CMakeLists.txt b/src/optional/gtkmm/CMakeLists.txt new file mode 100644 index 0000000000..1503a1ac08 --- /dev/null +++ b/src/optional/gtkmm/CMakeLists.txt @@ -0,0 +1,50 @@ +# CMakeLists.txt for src/optional/gtkmm + +ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.gtkmm\") + +INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${GLIBMM_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH}) +INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH}) +INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-glib-utils.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine) # for gnc-glib-utils.h +INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/backend/xml) +INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src/engine) # for swig-runtime.h + +SET (libgncmod_gtkmm_HEADERS + gncmm/Account.hpp + gncmm/Book.hpp + gncmm/Commodity.hpp + gncmm/GncInstance.hpp + gncmm/Numeric.hpp + gncmm/Split.hpp + gncmm/Transaction.hpp + gncmm/private/Account_p.hpp + gncmm/private/Book_p.hpp + gncmm/private/Commodity_p.hpp + gncmm/private/GncInstance_p.hpp + gncmm/private/Split_p.hpp + gncmm/private/Transaction_p.hpp + gncmm/wrap_init.hpp +) + +SET (libgncmod_gtkmm_SOURCES + gncmm/Account.cpp + gncmm/Book.cpp + gncmm/Commodity.cpp + gncmm/GncInstance.cpp + gncmm/Numeric.cpp + gncmm/Split.cpp + gncmm/Transaction.cpp + gncmm/wrap_init.cpp +) + +ADD_LIBRARY (libgncmod-gtkmm + ${libgncmod_gtkmm_SOURCES} + ${libgncmod_gtkmm_HEADERS} + )