mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
This commit tries to do the minimum necessary to move the guile bits from engine to bindings/guile. As engine is a very central piece in the software, this unfortunately still touches many other source files: - A few helper objects have been squashed together: * engine-helpers-guile.[ch] (of which the c part is extracted from engine-helpers.c) * gncBusGuile.[ch] * gnc-hooks-scm.[ch] - The initialization function of gncmod-engine no longer initializes the scm bits. Any scm code that wants to interact with the engine code now has to load the (gnucash engine) scm module, or sometimes (gnucash business-core). The bulk of changes in this commit actually is updating all the scm consumers to do so. - scm-scm target has been removed. Instead (gnucash utilities) is part of scm-engine. A few dependency graphs have been updated for this. More refinements will be in followup commits.
282 lines
5.5 KiB
CMake
282 lines
5.5 KiB
CMake
# CMakeLists.txt for libgnucash/engine
|
|
|
|
add_subdirectory(test-core)
|
|
add_subdirectory(test)
|
|
|
|
set(engine_noinst_HEADERS
|
|
AccountP.h
|
|
ScrubP.h
|
|
SplitP.h
|
|
SX-book.h
|
|
SX-ttinfo.h
|
|
TransactionP.h
|
|
engine-deprecated.h
|
|
gnc-backend-prov.hpp
|
|
gnc-date-p.h
|
|
gnc-int128.hpp
|
|
gnc-lot.h
|
|
gnc-lot-p.h
|
|
gnc-pricedb-p.h
|
|
policy-p.h
|
|
qofbook-p.h
|
|
qofclass-p.h
|
|
qofevent-p.h
|
|
qofobject-p.h
|
|
qofquery-p.h
|
|
qofquerycore-p.h
|
|
)
|
|
|
|
set (engine_HEADERS
|
|
Account.h
|
|
FreqSpec.h
|
|
Recurrence.h
|
|
SchedXaction.h
|
|
SX-book.h
|
|
SX-ttinfo.h
|
|
Query.h
|
|
Scrub.h
|
|
Scrub2.h
|
|
ScrubBusiness.h
|
|
Scrub3.h
|
|
Split.h
|
|
TransLog.h
|
|
Transaction.h
|
|
cap-gains.h
|
|
cashobjects.h
|
|
engine-helpers.h
|
|
gnc-aqbanking-templates.h
|
|
gnc-budget.h
|
|
gnc-commodity.h
|
|
gnc-date.h
|
|
gnc-datetime.hpp
|
|
gnc-engine.h
|
|
gnc-event.h
|
|
gnc-features.h
|
|
gnc-hooks.h
|
|
gnc-numeric.h
|
|
gnc-numeric.hpp
|
|
gnc-pricedb.h
|
|
gnc-rational.hpp
|
|
gnc-rational-rounding.hpp
|
|
gnc-session.h
|
|
gnc-timezone.hpp
|
|
gnc-uri-utils.h
|
|
gncAddress.h
|
|
gncAddressP.h
|
|
gncBillTerm.h
|
|
gncBillTermP.h
|
|
gncBusiness.h
|
|
gncCustomer.h
|
|
gncCustomerP.h
|
|
gncEmployee.h
|
|
gncEmployeeP.h
|
|
gncEntry.h
|
|
gncEntryP.h
|
|
gncIDSearch.h
|
|
gncInvoice.h
|
|
gncInvoiceP.h
|
|
gncJob.h
|
|
gncJobP.h
|
|
gncOrder.h
|
|
gncOrderP.h
|
|
gncOwner.h
|
|
gncOwnerP.h
|
|
gncTaxTable.h
|
|
gncTaxTableP.h
|
|
gncVendor.h
|
|
gncVendorP.h
|
|
guid.h
|
|
guid.hpp
|
|
kvp-frame.hpp
|
|
kvp-value.hpp
|
|
policy.h
|
|
qof.h
|
|
qof-backend.hpp
|
|
qofbackend.h
|
|
qofbook.h
|
|
qofbookslots.h
|
|
qofchoice.h
|
|
qofclass.h
|
|
qofevent.h
|
|
qofid-p.h
|
|
qofid.h
|
|
qofinstance-p.h
|
|
qofinstance.h
|
|
qoflog.h
|
|
qofobject.h
|
|
qofquery.h
|
|
qofquerycore.h
|
|
qofsession.h
|
|
qofsession.hpp
|
|
qofutil.h
|
|
qof-gobject.h
|
|
qof-string-cache.h
|
|
)
|
|
|
|
# Command to generate the iso-4217-currencies.c file
|
|
set (ISO_4217_C ${CMAKE_CURRENT_BINARY_DIR}/iso-4217-currencies.c)
|
|
add_custom_command (
|
|
OUTPUT ${ISO_4217_C}
|
|
DEPENDS iso-4217-currencies.xml iso-currencies-to-c.xsl
|
|
COMMAND
|
|
${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
|
|
)
|
|
add_custom_target(iso-4217-c DEPENDS ${ISO_4217_C})
|
|
|
|
set (engine_SOURCES
|
|
Account.cpp
|
|
Recurrence.c
|
|
Query.c
|
|
SchedXaction.c
|
|
SX-book.c
|
|
SX-ttinfo.c
|
|
Scrub.c
|
|
Scrub2.c
|
|
Scrub3.c
|
|
ScrubBusiness.c
|
|
Split.c
|
|
TransLog.c
|
|
Transaction.c
|
|
cap-gains.c
|
|
cashobjects.c
|
|
engine-deprecated.c
|
|
gnc-aqbanking-templates.cpp
|
|
gnc-budget.c
|
|
gnc-commodity.c
|
|
gnc-date.cpp
|
|
gnc-datetime.cpp
|
|
gnc-engine.c
|
|
gnc-event.c
|
|
gnc-features.c
|
|
gnc-hooks.c
|
|
gnc-int128.cpp
|
|
gnc-lot.c
|
|
gnc-numeric.cpp
|
|
gnc-pricedb.c
|
|
gnc-rational.cpp
|
|
gnc-session.c
|
|
gnc-timezone.cpp
|
|
gnc-uri-utils.c
|
|
gncmod-engine.c
|
|
engine-helpers.c
|
|
guid.cpp
|
|
policy.c
|
|
gncAddress.c
|
|
gncBillTerm.c
|
|
gncBusiness.c
|
|
gncCustomer.c
|
|
gncEmployee.c
|
|
gncEntry.c
|
|
gncIDSearch.c
|
|
gncInvoice.c
|
|
gncJob.c
|
|
gncOrder.c
|
|
gncOwner.c
|
|
gncTaxTable.c
|
|
gncVendor.c
|
|
kvp-frame.cpp
|
|
kvp-value.cpp
|
|
qof-backend.cpp
|
|
qofbook.cpp
|
|
qofchoice.cpp
|
|
qofclass.cpp
|
|
qofevent.cpp
|
|
qofid.cpp
|
|
qofinstance.cpp
|
|
qoflog.cpp
|
|
qofobject.cpp
|
|
qofquery.cpp
|
|
qofquerycore.cpp
|
|
qofsession.cpp
|
|
qofutil.cpp
|
|
qof-string-cache.cpp
|
|
)
|
|
|
|
if (WIN32)
|
|
add_definitions (-DOS_WIN32)
|
|
set (engine_SOURCES ${engine_SOURCES}
|
|
qof-win32.cpp
|
|
../../borrowed/libc/strptime.c
|
|
)
|
|
endif (WIN32)
|
|
|
|
# Add dependency on config.h
|
|
set_source_files_properties (${engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
|
|
|
|
# Add dependency on iso-4217-currencies.c
|
|
set_source_files_properties (gnc-commodity.c PROPERTIES OBJECT_DEPENDS "${ISO_4217_C};${CONFIG_H}")
|
|
|
|
|
|
|
|
add_library (gncmod-engine
|
|
${engine_SOURCES}
|
|
${engine_HEADERS}
|
|
${engine_noinst_HEADERS}
|
|
)
|
|
|
|
# Add dependency on swig-runtime.h and iso-4217-currencies.c
|
|
add_dependencies (gncmod-engine iso-4217-c)
|
|
if (WIN32)
|
|
set(BCRYPT "bcrypt.lib")
|
|
else()
|
|
set(BCRYPT "")
|
|
endif()
|
|
|
|
target_link_libraries(gncmod-engine
|
|
gnc-core-utils
|
|
gnc-module
|
|
${Boost_DATE_TIME_LIBRARIES}
|
|
${Boost_REGEX_LIBRARIES}
|
|
${ICU4C_I18N_LDFLAGS}
|
|
${BCRYPT}
|
|
${REGEX_LDFLAGS}
|
|
${GMODULE_LDFLAGS}
|
|
${GLIB2_LDFLAGS}
|
|
${GOBJECT_LDFLAGS}
|
|
${GUILE_LDFLAGS})
|
|
|
|
target_compile_definitions (gncmod-engine PRIVATE -DG_LOG_DOMAIN=\"gnc.engine\")
|
|
|
|
target_include_directories (gncmod-engine
|
|
PRIVATE
|
|
${CMAKE_CURRENT_BINARY_DIR} # for iso-4217-currencies.c
|
|
${GUILE_INCLUDE_DIRS}
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_BINARY_DIR}/common # for config.h
|
|
${CMAKE_SOURCE_DIR}/common # for platform.h
|
|
${GLIB2_INCLUDE_DIRS}
|
|
${LIBINTL_INCLUDE_PATH}
|
|
${REGEX_INCLUDE_PATH}
|
|
${CMAKE_SOURCE_DIR}/borrowed/libc # for strptime.h
|
|
)
|
|
|
|
if (APPLE)
|
|
set_target_properties (gncmod-engine PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/gnucash")
|
|
endif()
|
|
|
|
install(TARGETS gncmod-engine
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/gnucash
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
install(FILES ${engine_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
|
|
|
|
set(engine_EXTRA_DIST
|
|
design.txt
|
|
extensions.txt
|
|
iso-4217-currencies.xml
|
|
iso-currencies-to-c.xsl
|
|
kvp_doc.txt
|
|
README
|
|
README.query-api
|
|
SX-book-p.h
|
|
)
|
|
|
|
if (NOT WIN32)
|
|
list(APPEND engine_EXTRA_DIST qof-win32.cpp)
|
|
endif (NOT WIN32)
|
|
set_local_dist(engine_DIST_local CMakeLists.txt ${engine_SOURCES} ${engine_HEADERS}
|
|
${engine_noinst_HEADERS} ${engine_EXTRA_DIST})
|
|
set(engine_DIST ${engine_DIST_local} ${engine_test_core_DIST} ${test_engine_DIST} PARENT_SCOPE)
|