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