r18968 - gnucash/trunk - Cutecash: Compile & link SQL backend as well (but there is no GUI for this yet)

Christian Stimming cstim at code.gnucash.org
Sat Mar 27 16:27:10 EDT 2010


Author: cstim
Date: 2010-03-27 16:27:10 -0400 (Sat, 27 Mar 2010)
New Revision: 18968
Trac: http://svn.gnucash.org/trac/changeset/18968

Added:
   gnucash/trunk/src/backend/dbi/CMakeLists.txt
   gnucash/trunk/src/backend/sql/CMakeLists.txt
   gnucash/trunk/src/business/business-core/sql/CMakeLists.txt
Modified:
   gnucash/trunk/CMakeLists.txt
   gnucash/trunk/src/CMakeLists.txt
   gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
   gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h
   gnucash/trunk/src/backend/xml/gnc-backend-xml.c
   gnucash/trunk/src/backend/xml/gnc-backend-xml.h
   gnucash/trunk/src/gnc/CMakeLists.txt
   gnucash/trunk/src/gnc/main.cpp
Log:
Cutecash: Compile & link SQL backend as well (but there is no GUI for this yet)

Modified: gnucash/trunk/CMakeLists.txt
===================================================================
--- gnucash/trunk/CMakeLists.txt	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/CMakeLists.txt	2010-03-27 20:27:10 UTC (rev 18968)
@@ -14,6 +14,10 @@
 
 # ############################################################
 
+OPTION (WITH_SQL "Build this project with SQL (libdbi) support" OFF)
+
+# ############################################################
+
 # Find pkg-config
 FIND_PACKAGE (PkgConfig REQUIRED)
 
@@ -83,6 +87,20 @@
 
 # ############################################################
 
+# libdbi
+FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h)
+FIND_LIBRARY (LIBDBI_LIBRARY dbi)
+IF (WITH_SQL)
+  IF (NOT LIBDBI_INCLUDE_PATH)
+    MESSAGE (SEND_ERROR "Include file <dbi/dbi.h> was not found - did you install libdbi0-dev or libdbi-dev?")
+  ENDIF (NOT LIBDBI_INCLUDE_PATH)
+  IF (NOT LIBDBI_LIBRARY)
+    MESSAGE (SEND_ERROR "Library libdbi was not found")
+  ENDIF (NOT LIBDBI_LIBRARY)
+ENDIF (WITH_SQL)
+
+# ############################################################
+
 # Qt
 SET (QT_MIN_VERSION "4.5.0")
 FIND_PACKAGE (Qt4 REQUIRED) # find and setup Qt4 for this project

Modified: gnucash/trunk/src/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/CMakeLists.txt	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/CMakeLists.txt	2010-03-27 20:27:10 UTC (rev 18968)
@@ -18,6 +18,7 @@
 #define HAVE_LIBQOF /**/
 #define HAVE_TOWUPPER 1
 #define QOF_DISABLE_DEPRECATED 1
+#define GNC_NO_LOADABLE_MODULES 1
 ")
 
 IF (WIN32)
@@ -137,6 +138,11 @@
 ADD_SUBDIRECTORY (business/business-core)
 ADD_SUBDIRECTORY (calculation)
 ADD_SUBDIRECTORY (app-utils)
+IF (WITH_SQL)
+  ADD_SUBDIRECTORY (backend/dbi)
+  ADD_SUBDIRECTORY (backend/sql)
+  ADD_SUBDIRECTORY (business/business-core/sql)
+ENDIF (WITH_SQL)
 
 ADD_SUBDIRECTORY (gnc)
 

Added: gnucash/trunk/src/backend/dbi/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/backend/dbi/CMakeLists.txt	                        (rev 0)
+++ gnucash/trunk/src/backend/dbi/CMakeLists.txt	2010-03-27 20:27:10 UTC (rev 18968)
@@ -0,0 +1,30 @@
+# CMakeLists.txt for src/backend/dbi
+
+ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.dbi\")
+
+INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/backend/sql)
+
+SET (libgnc_backend_dbi_SOURCES
+  gnc-backend-dbi.c
+)
+SET (libgnc_backend_dbi_HEADERS
+  gnc-backend-dbi.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY	(gnc-backend-dbi
+  ${libgnc_backend_dbi_SOURCES}
+  ${libgnc_backend_dbi_HEADERS}
+  )

Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c	2010-03-27 20:27:10 UTC (rev 18968)
@@ -1000,12 +1000,6 @@
     return FALSE;
 }
 
-G_MODULE_EXPORT void
-qof_backend_module_init( void )
-{
-    gnc_module_init_backend_dbi();
-}
-
 void
 gnc_module_init_backend_dbi(void)
 {
@@ -1119,11 +1113,19 @@
     qof_log_set_level( log_module, QOF_LOG_DEBUG );
 }
 
+#ifndef GNC_NO_LOADABLE_MODULES
 G_MODULE_EXPORT void
+qof_backend_module_init( void )
+{
+    gnc_module_init_backend_dbi();
+}
+
+G_MODULE_EXPORT void
 qof_backend_module_finalize( void )
 {
     gnc_module_finalize_backend_dbi();
 }
+#endif /* GNC_NO_LOADABLE_MODULES */
 
 void
 gnc_module_finalize_backend_dbi( void )

Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h	2010-03-27 20:27:10 UTC (rev 18968)
@@ -38,7 +38,12 @@
  * statically linked into the application. */
 void gnc_module_finalize_backend_dbi(void);
 
+#ifndef GNC_NO_LOADABLE_MODULES
+/** This is the standarized initialization function of a qof_backend
+ * GModule, but compiling this can be disabled by defining
+ * GNC_NO_LOADABLE_MODULES. */
 G_MODULE_EXPORT void qof_backend_module_init(void);
 G_MODULE_EXPORT void qof_backend_module_finalize(void);
+#endif
 
 #endif /* GNC_BACKEND_DBI_H_ */

Added: gnucash/trunk/src/backend/sql/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/backend/sql/CMakeLists.txt	                        (rev 0)
+++ gnucash/trunk/src/backend/sql/CMakeLists.txt	2010-03-27 20:27:10 UTC (rev 18968)
@@ -0,0 +1,53 @@
+# CMakeLists.txt for src/backend/dbi
+
+ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.sql\")
+
+INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${LIBGUILE_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
+
+SET (libgnc_backend_sql_SOURCES
+  gnc-backend-sql.c
+  gnc-account-sql.c
+  gnc-book-sql.c
+  gnc-budget-sql.c
+  gnc-commodity-sql.c
+  gnc-lots-sql.c
+  gnc-price-sql.c
+  gnc-recurrence-sql.c
+  gnc-schedxaction-sql.c
+  gnc-slots-sql.c
+  gnc-transaction-sql.c
+  escape.c
+)
+SET (libgnc_backend_sql_HEADERS
+  gnc-account-sql.h
+  gnc-backend-sql.h
+  gnc-book-sql.h
+  gnc-budget-sql.h
+  gnc-commodity-sql.h
+  gnc-lots-sql.h
+  gnc-price-sql.h
+  gnc-recurrence-sql.h
+  gnc-schedxaction-sql.h
+  gnc-slots-sql.h
+  gnc-transaction-sql.h
+  escape.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY	(gnc-backend-sql
+  ${libgnc_backend_sql_SOURCES}
+  ${libgnc_backend_sql_HEADERS}
+  )

Modified: gnucash/trunk/src/backend/xml/gnc-backend-xml.c
===================================================================
--- gnucash/trunk/src/backend/xml/gnc-backend-xml.c	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/backend/xml/gnc-backend-xml.c	2010-03-27 20:27:10 UTC (rev 18968)
@@ -1169,11 +1169,13 @@
     g_free (prov);
 }
 
+#ifndef GNC_NO_LOADABLE_MODULES
 G_MODULE_EXPORT void
 qof_backend_module_init(void)
 {
     gnc_module_init_backend_xml();
 }
+#endif
 
 void
 gnc_module_init_backend_xml(void)

Modified: gnucash/trunk/src/backend/xml/gnc-backend-xml.h
===================================================================
--- gnucash/trunk/src/backend/xml/gnc-backend-xml.h	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/backend/xml/gnc-backend-xml.h	2010-03-27 20:27:10 UTC (rev 18968)
@@ -60,9 +60,13 @@
  * statically linked into the application. */
 void gnc_module_init_backend_xml(void);
 
+#ifndef GNC_NO_LOADABLE_MODULES
 /** This is the standarized initialization function of a qof_backend
- * GModule. This one simply calls gnc_module_init_backend_file(). */
-G_MODULE_EXPORT void
-qof_backend_module_init(void);
+ * GModule, but compiling this can be disabled by defining
+ * GNC_NO_LOADABLE_MODULES. This one simply calls
+ * gnc_module_init_backend_file(). */
+G_MODULE_EXPORT
+void qof_backend_module_init(void);
+#endif
 
 #endif /* GNC_BACKEND_XML_H_ */

Added: gnucash/trunk/src/business/business-core/sql/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/business/business-core/sql/CMakeLists.txt	                        (rev 0)
+++ gnucash/trunk/src/business/business-core/sql/CMakeLists.txt	2010-03-27 20:27:10 UTC (rev 18968)
@@ -0,0 +1,53 @@
+# CMakeLists.txt for src/backend/dbi
+
+ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.sql\")
+
+INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${LIBGUILE_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
+INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/business/business-core)
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/backend/sql)
+
+SET (libgnc_business_backend_sql_SOURCES
+  gncmod-business-backend-sql.c
+  gnc-address-sql.c
+  gnc-bill-term-sql.c
+  gnc-customer-sql.c
+  gnc-employee-sql.c
+  gnc-entry-sql.c
+  gnc-invoice-sql.c
+  gnc-job-sql.c
+  gnc-order-sql.c
+  gnc-owner-sql.c
+  gnc-tax-table-sql.c
+  gnc-vendor-sql.c
+)
+SET (libgnc_business_backend_sql_HEADERS
+  gnc-address-sql.h
+  gnc-bill-term-sql.h
+  gnc-customer-sql.h
+  gnc-employee-sql.h
+  gnc-entry-sql.h
+  gnc-invoice-sql.h
+  gnc-job-sql.h
+  gnc-order-sql.h
+  gnc-owner-sql.h
+  gnc-tax-table-sql.h
+  gnc-vendor-sql.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${libgnc_business_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY	(gnc-business-backend-sql
+  ${libgnc_business_backend_sql_SOURCES}
+  ${libgnc_business_backend_sql_HEADERS}
+  )

Modified: gnucash/trunk/src/gnc/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/gnc/CMakeLists.txt	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/gnc/CMakeLists.txt	2010-03-27 20:27:10 UTC (rev 18968)
@@ -57,6 +57,11 @@
   gnucash.qrc
   gtk-icons.qrc
 )
+
+IF (WITH_SQL)
+  ADD_DEFINITIONS (-DWITH_SQL)
+ENDIF (WITH_SQL)
+
 # Generation of resource files
 QT4_ADD_RESOURCES (gnc_RESOURCE ${gnc_RESOURCES})
 
@@ -93,6 +98,11 @@
 TARGET_LINK_LIBRARIES (cutecash business-core)
 TARGET_LINK_LIBRARIES (cutecash gnc-backend-xml)
 TARGET_LINK_LIBRARIES (cutecash app-utils calculation)
+IF (WITH_SQL)
+  TARGET_LINK_LIBRARIES (cutecash gnc-business-backend-sql)
+  TARGET_LINK_LIBRARIES (cutecash gnc-backend-dbi gnc-backend-sql)
+  TARGET_LINK_LIBRARIES (cutecash ${LIBDBI_LIBRARY})
+ENDIF (WITH_SQL)
 TARGET_LINK_LIBRARIES (cutecash engine gnc-module core-utils qof)
 TARGET_LINK_LIBRARIES (cutecash ${GCONF2_LIBRARIES})
 TARGET_LINK_LIBRARIES (cutecash ${GTHREAD_LIBRARIES} ${GOBJECT_LIBRARIES} ${GMODULE_LIBRARIES} ${GLIB2_LIBRARIES})

Modified: gnucash/trunk/src/gnc/main.cpp
===================================================================
--- gnucash/trunk/src/gnc/main.cpp	2010-03-27 10:24:07 UTC (rev 18967)
+++ gnucash/trunk/src/gnc/main.cpp	2010-03-27 20:27:10 UTC (rev 18968)
@@ -50,6 +50,9 @@
 #include "backend/xml/gnc-backend-xml.h"
 #include "business/business-core/gncBusiness.h"
 #include "business/business-core/xml/gncmod-business-backend-xml.h"
+#ifdef WITH_SQL
+#  include "backend/dbi/gnc-backend-dbi.h"
+#endif
 } // END extern C
 
 #ifdef HAVE_GETTEXT
@@ -182,7 +185,7 @@
     // Call the statically-linked versions of the backend init
     // functions
     gnc_module_init_backend_xml();
-    //gnc_module_init_backend_dbi();
+    gnc_module_init_backend_dbi();
     gnc_module_init_business_core_init();
     gnc_module_init_business_core_xml_init();
     gnc_ui_util_init();
@@ -204,7 +207,7 @@
 
     // Shutdown of the C side after all C++ was destructed already.
     gnc_exp_parser_shutdown();
-    //gnc_module_finalize_backend_dbi();
+    gnc_module_finalize_backend_dbi();
     qof_close();
     return r;
 



More information about the gnucash-changes mailing list