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