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