Cutecash: Compile & link SQL backend as well (but there is no GUI for this yet)

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18968 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming 2010-03-27 20:27:10 +00:00
parent d5742f24fc
commit 932eeb766d
11 changed files with 197 additions and 11 deletions

View File

@ -14,6 +14,10 @@ INCLUDE (GncAddSwigCommand)
# ############################################################
OPTION (WITH_SQL "Build this project with SQL (libdbi) support" OFF)
# ############################################################
# Find pkg-config
FIND_PACKAGE (PkgConfig REQUIRED)
@ -83,6 +87,20 @@ ENDIF (NOT GUILE_EXECUTABLE)
# ############################################################
# 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

View File

@ -18,6 +18,7 @@ FILE (APPEND ${CONFIG_H} "
#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 (backend/xml)
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)

View File

@ -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}
)

View File

@ -1000,12 +1000,6 @@ gnc_dbi_check_sqlite3_file( const gchar *uri )
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 @@ gnc_module_init_backend_dbi(void)
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 )

View File

@ -38,7 +38,12 @@ void gnc_module_init_backend_dbi(void);
* 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_ */

View File

@ -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}
)

View File

@ -1169,11 +1169,13 @@ gnc_provider_free (QofBackendProvider *prov)
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)

View File

@ -60,9 +60,13 @@ typedef struct FileBackend_struct FileBackend;
* 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_ */

View File

@ -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}
)

View File

@ -57,6 +57,11 @@ SET (gnc_RESOURCES
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 @@ ADD_EXECUTABLE (cutecash
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})

View File

@ -50,6 +50,9 @@ extern "C"
#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 @@ main(int argc, char ** argv)
// 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 @@ main(int argc, char ** argv)
// 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;