r18841 - gnucash/trunk/src - Make business backend initialization functions accessible when statically linking

Christian Stimming cstim at code.gnucash.org
Fri Mar 5 14:57:25 EST 2010


Author: cstim
Date: 2010-03-05 14:57:25 -0500 (Fri, 05 Mar 2010)
New Revision: 18841
Trac: http://svn.gnucash.org/trac/changeset/18841

Added:
   gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.h
Modified:
   gnucash/trunk/src/CMakeLists.txt
   gnucash/trunk/src/business/business-core/gncBusiness.h
   gnucash/trunk/src/business/business-core/gncmod-business-core.c
   gnucash/trunk/src/business/business-core/xml/Makefile.am
   gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.c
   gnucash/trunk/src/gnc/CMakeLists.txt
   gnucash/trunk/src/gnc/main.cpp
Log:
Make business backend initialization functions accessible when statically linking

Modified: gnucash/trunk/src/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/CMakeLists.txt	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/CMakeLists.txt	2010-03-05 19:57:25 UTC (rev 18841)
@@ -137,7 +137,9 @@
 ADD_SUBDIRECTORY (gnc-module)
 ADD_SUBDIRECTORY (engine)
 ADD_SUBDIRECTORY (backend/xml)
-ADD_SUBDIRECTORY (business/business-core)
+IF (NOT MSVC)
+  ADD_SUBDIRECTORY (business/business-core)
+ENDIF (NOT MSVC)
 
 ADD_SUBDIRECTORY (gnc)
 

Modified: gnucash/trunk/src/business/business-core/gncBusiness.h
===================================================================
--- gnucash/trunk/src/business/business-core/gncBusiness.h	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/business/business-core/gncBusiness.h	2010-03-05 19:57:25 UTC (rev 18841)
@@ -47,6 +47,9 @@
 #define GNC_TAXTABLE_MODULE_NAME GNC_ID_TAXTABLE
 #define GNC_VENDOR_MODULE_NAME   GNC_ID_VENDOR
 
+void
+gnc_module_init_business_core_init(void);
+
 #ifndef DI
 # ifdef _MSC_VER
 /* MSVC compiler doesn't have C99 "designated initializers"

Modified: gnucash/trunk/src/business/business-core/gncmod-business-core.c
===================================================================
--- gnucash/trunk/src/business/business-core/gncmod-business-core.c	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/business/business-core/gncmod-business-core.c	2010-03-05 19:57:25 UTC (rev 18841)
@@ -67,6 +67,23 @@
     return g_strdup("The GnuCash business core");
 }
 
+void
+gnc_module_init_business_core_init(void)
+{
+    /* initialize known types */
+    gncInvoiceRegister ();
+    gncJobRegister ();
+    gncBillTermRegister ();
+    gncCustomerRegister ();
+    gncAddressRegister ();
+    gncEmployeeRegister ();
+    gncEntryRegister ();
+    gncOrderRegister ();
+    gncOwnerRegister ();
+    gncTaxTableRegister ();
+    gncVendorRegister ();
+}
+
 int
 libgncmod_business_core_gnc_module_init(int refcount)
 {
@@ -78,18 +95,7 @@
 
     if (refcount == 0)
     {
-        /* initialize known types */
-        gncInvoiceRegister ();
-        gncJobRegister ();
-        gncBillTermRegister ();
-        gncCustomerRegister ();
-        gncAddressRegister ();
-        gncEmployeeRegister ();
-        gncEntryRegister ();
-        gncOrderRegister ();
-        gncOwnerRegister ();
-        gncTaxTableRegister ();
-        gncVendorRegister ();
+        gnc_module_init_business_core_init();
     }
 
     scm_init_sw_business_core_module();

Modified: gnucash/trunk/src/business/business-core/xml/Makefile.am
===================================================================
--- gnucash/trunk/src/business/business-core/xml/Makefile.am	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/business/business-core/xml/Makefile.am	2010-03-05 19:57:25 UTC (rev 18841)
@@ -28,6 +28,7 @@
   gnc-vendor-xml-v2.c
 
 noinst_HEADERS = \
+  gncmod-business-backend-xml.h \
   gnc-address-xml-v2.h \
   gnc-bill-term-xml-v2.h \
   gnc-customer-xml-v2.h \

Modified: gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.c
===================================================================
--- gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.c	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.c	2010-03-05 19:57:25 UTC (rev 18841)
@@ -23,6 +23,8 @@
  *
  *********************************************************************/
 
+#include "gncmod-business-backend-xml.h"
+
 #include "config.h"
 #include <gmodule.h>
 
@@ -69,6 +71,23 @@
     return g_strdup("The XML (v2) parsers for GnuCash business objects");
 }
 
+void
+gnc_module_init_business_core_xml_init(void)
+{
+    /* Initialize our pointers into the backend subsystem */
+    gnc_address_xml_initialize ();
+    gnc_billterm_xml_initialize ();
+    gnc_customer_xml_initialize ();
+    gnc_employee_xml_initialize ();
+    gnc_entry_xml_initialize ();
+    gnc_invoice_xml_initialize ();
+    gnc_job_xml_initialize ();
+    gnc_order_xml_initialize ();
+    gnc_owner_xml_initialize ();
+    gnc_taxtable_xml_initialize ();
+    gnc_vendor_xml_initialize ();
+}
+
 int
 libgncmod_business_backend_xml_gnc_module_init(int refcount)
 {
@@ -82,18 +101,7 @@
 
     if (refcount == 0)
     {
-        /* Initialize our pointers into the backend subsystem */
-        gnc_address_xml_initialize ();
-        gnc_billterm_xml_initialize ();
-        gnc_customer_xml_initialize ();
-        gnc_employee_xml_initialize ();
-        gnc_entry_xml_initialize ();
-        gnc_invoice_xml_initialize ();
-        gnc_job_xml_initialize ();
-        gnc_order_xml_initialize ();
-        gnc_owner_xml_initialize ();
-        gnc_taxtable_xml_initialize ();
-        gnc_vendor_xml_initialize ();
+        gnc_module_init_business_core_xml_init();
     }
 
     return TRUE;

Added: gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.h
===================================================================
--- gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.h	                        (rev 0)
+++ gnucash/trunk/src/business/business-core/xml/gncmod-business-backend-xml.h	2010-03-05 19:57:25 UTC (rev 18841)
@@ -0,0 +1,32 @@
+/*********************************************************************
+ * gncmod-business-backend-file.h
+ * module definition/initialization for the file backend module
+ *
+ * Copyright (c) 2002 Derek Atkins <warlord at MIT.EDU>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, contact:
+ *
+ * Free Software Foundation           Voice:  +1-617-542-5942
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org
+ *
+ *********************************************************************/
+
+#ifndef GNCMOD_BUSINESS_BACKEND_XML_H
+#define GNCMOD_BUSINESS_BACKEND_XML_H
+
+void
+gnc_module_init_business_core_xml_init(void);
+
+#endif

Modified: gnucash/trunk/src/gnc/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/gnc/CMakeLists.txt	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/gnc/CMakeLists.txt	2010-03-05 19:57:25 UTC (rev 18841)
@@ -68,7 +68,9 @@
   ${gnc_SOURCES}
 )
 
-TARGET_LINK_LIBRARIES (cutecash gnc-backend-xml engine gnc-module core-utils qof)
+TARGET_LINK_LIBRARIES (cutecash business-core)
+TARGET_LINK_LIBRARIES (cutecash gnc-backend-xml)
+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})
 TARGET_LINK_LIBRARIES (cutecash ${LIBGUILE_LIBRARIES})

Modified: gnucash/trunk/src/gnc/main.cpp
===================================================================
--- gnucash/trunk/src/gnc/main.cpp	2010-03-05 19:57:04 UTC (rev 18840)
+++ gnucash/trunk/src/gnc/main.cpp	2010-03-05 19:57:25 UTC (rev 18841)
@@ -42,10 +42,12 @@
 #include "core-utils/gnc-main.h"
 #include "engine/gnc-session.h"
 #include "engine/engine-helpers.h"
-#include "engine/cashobjects.h"
+#include "engine/gnc-engine.h"
 #include "swig-runtime.h"
 
 #include "backend/xml/gnc-backend-xml.h"
+#include "business/business-core/gncBusiness.h"
+#include "business/business-core/xml/gncmod-business-backend-xml.h"
 
 #ifdef HAVE_GETTEXT
 #  include <libintl.h>
@@ -173,12 +175,14 @@
 
     qof_init();
     gnc_module_system_init();
-    cashobjects_register();
+    gnc_engine_init(argc, argv);
 
     // Call the statically-linked versions of the backend init
     // functions
     gnc_module_init_backend_xml();
     //gnc_module_init_backend_dbi();
+    gnc_module_init_business_core_init();
+    gnc_module_init_business_core_xml_init();
 
     // From here on the new C++ code
     QApplication app(argc, argv);



More information about the gnucash-changes mailing list