r18838 - gnucash/trunk/src - Make the backend initialization functions accessible when statically linking
Christian Stimming
cstim at code.gnucash.org
Fri Mar 5 14:56:12 EST 2010
Author: cstim
Date: 2010-03-05 14:56:12 -0500 (Fri, 05 Mar 2010)
New Revision: 18838
Trac: http://svn.gnucash.org/trac/changeset/18838
Modified:
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/main.cpp
Log:
Make the backend initialization functions accessible when statically linking
Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2010-03-05 19:55:20 UTC (rev 18837)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2010-03-05 19:56:12 UTC (rev 18838)
@@ -1044,6 +1044,12 @@
G_MODULE_EXPORT void
qof_backend_module_init( void )
{
+ gnc_module_init_backend_dbi();
+}
+
+void
+gnc_module_init_backend_dbi(void)
+{
QofBackendProvider *prov;
#define DEFAULT_DBD_DIR "/usr/lib/dbd"
const gchar* driver_dir;
@@ -1157,6 +1163,12 @@
G_MODULE_EXPORT void
qof_backend_module_finalize( void )
{
+ gnc_module_finalize_backend_dbi();
+}
+
+void
+gnc_module_finalize_backend_dbi( void )
+{
dbi_shutdown();
}
Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h 2010-03-05 19:55:20 UTC (rev 18837)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.h 2010-03-05 19:56:12 UTC (rev 18838)
@@ -31,6 +31,13 @@
#include <gmodule.h>
+/** Initialization function which can be used when this module is
+ * statically linked into the application. */
+void gnc_module_init_backend_dbi(void);
+/** Shutdown function which can be used when this module is
+ * statically linked into the application. */
+void gnc_module_finalize_backend_dbi(void);
+
G_MODULE_EXPORT void qof_backend_module_init(void);
G_MODULE_EXPORT void qof_backend_module_finalize(void);
Modified: gnucash/trunk/src/backend/xml/gnc-backend-xml.c
===================================================================
--- gnucash/trunk/src/backend/xml/gnc-backend-xml.c 2010-03-05 19:55:20 UTC (rev 18837)
+++ gnucash/trunk/src/backend/xml/gnc-backend-xml.c 2010-03-05 19:56:12 UTC (rev 18838)
@@ -1165,6 +1165,12 @@
G_MODULE_EXPORT void
qof_backend_module_init(void)
{
+ gnc_module_init_backend_xml();
+}
+
+void
+gnc_module_init_backend_xml(void)
+{
QofBackendProvider *prov;
prov = g_new0 (QofBackendProvider, 1);
prov->provider_name = "GnuCash File Backend Version 2";
Modified: gnucash/trunk/src/backend/xml/gnc-backend-xml.h
===================================================================
--- gnucash/trunk/src/backend/xml/gnc-backend-xml.h 2010-03-05 19:55:20 UTC (rev 18837)
+++ gnucash/trunk/src/backend/xml/gnc-backend-xml.h 2010-03-05 19:56:12 UTC (rev 18838)
@@ -56,6 +56,12 @@
// This is now a static inside the module
//QofBackend * libgncmod_backend_file_LTX_gnc_backend_new(void);
+/** Initialization function which can be used when this module is
+ * statically linked into the application. */
+void gnc_module_init_backend_xml(void);
+
+/** 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);
Modified: gnucash/trunk/src/gnc/main.cpp
===================================================================
--- gnucash/trunk/src/gnc/main.cpp 2010-03-05 19:55:20 UTC (rev 18837)
+++ gnucash/trunk/src/gnc/main.cpp 2010-03-05 19:56:12 UTC (rev 18838)
@@ -45,7 +45,7 @@
#include "engine/cashobjects.h"
#include "swig-runtime.h"
-#include "gnc-backend-xml.h"
+#include "backend/xml/gnc-backend-xml.h"
#ifdef HAVE_GETTEXT
# include <libintl.h>
@@ -175,15 +175,21 @@
gnc_module_system_init();
cashobjects_register();
- // For the XML file backend
- qof_backend_module_init();
+ // Call the statically-linked versions of the backend init
+ // functions
+ gnc_module_init_backend_xml();
+ //gnc_module_init_backend_dbi();
// From here on the new C++ code
QApplication app(argc, argv);
gnc::MainWindow mainWin;
mainWin.show();
+ // Go into the main qt event loop
int r = app.exec();
+
+ // Shutdown
+ //gnc_module_finalize_backend_dbi();
qof_close();
return r;
More information about the gnucash-changes
mailing list