core-utils - move wrapper code to bindings/guile

Note core-utils.i is used by both the guile and the python bindings so
it is moved up to the common bindings directory, while guile
specific changes are in bindings/guile.
This commit is contained in:
Geert Janssens
2019-10-01 12:51:38 +02:00
parent 18093b5e82
commit 28fa4c6465
7 changed files with 50 additions and 34 deletions

View File

@@ -1,5 +1,5 @@
add_subdirectory(guile)
add_subdirectory(python)
set_local_dist(bindings_DIST_local CMakeLists.txt )
set_local_dist(bindings_DIST_local CMakeLists.txt core-utils.i)
set(bindings_DIST ${bindings_DIST_local} ${guile_DIST} ${python_bindings_DIST} PARENT_SCOPE)

View File

@@ -1,5 +1,11 @@
add_subdirectory(test)
# Command to generate the swig-core-utils-guile.c wrapper file
gnc_add_swig_guile_command (swig-core-utils-guile-c
SWIG_CORE_UTILS_GUILE_C swig-core-utils-guile.c
${CMAKE_SOURCE_DIR}/bindings/core-utils.i ${CMAKE_SOURCE_DIR}/libgnucash/core-utils
)
set(guile_HEADERS
gnc-guile-utils.h)
@@ -7,19 +13,28 @@ set(guile_SOURCES
gnc-guile-bindings.c
gnc-guile-utils.c)
add_library(gnucash-guile SHARED
${guile_SOURCES}
${guile_HEADERS}
${SWIG_CORE_UTILS_GUILE_C})
add_library(gnucash-guile SHARED ${guile_SOURCES} ${guile_HEADERS})
add_dependencies(gnucash-guile
swig-runtime-h)
target_include_directories(gnucash-guile
PRIVATE
${CMAKE_SOURCE_DIR}/common
${CMAKE_BINARY_DIR}/common
${CMAKE_SOURCE_DIR}/libgnucash/core-utils
${CMAKE_BINARY_DIR}/libgnucash/core-utils # For gnc-version-info.h
${GLIB2_INCLUDE_DIRS}
${GUILE_INCLUDE_DIRS}
${GTK_MAC_INCLUDE_DIRS}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR})
${CMAKE_CURRENT_SOURCE_DIR}
${GUILE_INCLUDE_DIRS})
target_link_libraries(gnucash-guile
gnc-core-utils
${GUILE_LDFLAGS}
${GLIB2_LDFLAGS}
${GOBJECT_LDFLAGS}
@@ -31,6 +46,8 @@ install(TARGETS gnucash-guile
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
# Scheme
set(GUILE_DEPENDS scm-core-utils scm-gnc-module gncmod-engine)
gnc_add_scheme_targets(scm-scm
@@ -47,10 +64,25 @@ gnc_add_scheme_targets(price-quotes
"scm-scm;scm-app-utils"
FALSE)
set (core_utils_SCHEME core-utils.scm)
set_local_dist(guile_DIST_local CMakeLists.txt utilities.scm price-quotes.scm
${guile_SOURCES} ${guile_HEADERS}
set(GUILE_OUTPUT_DIR gnucash)
set(GUILE_DEPENDS gnc-core-utils gnucash-guile)
gnc_add_scheme_targets(scm-core-utils
"${core_utils_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_DEPENDS}"
FALSE
)
set_local_dist(guile_DIST_local
CMakeLists.txt
core-utils.scm
utilities.scm
price-quotes.scm
${guile_SOURCES}
${guile_HEADERS})
set(guile_DIST ${guile_DIST_local} ${test_guile_DIST} PARENT_SCOPE)

View File

@@ -29,7 +29,7 @@
;; Guile 2 needs to find the symbols from the extension at compile time already
(eval-when
(compile load eval expand)
(load-extension "libgnc-core-utils" "scm_init_sw_core_utils_module"))
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
(use-modules (sw_core_utils))

View File

@@ -32,12 +32,17 @@ void gnc_guile_bindings_init(void);
static int is_initialized = 0;
extern SCM
scm_init_sw_core_utils_module (void);
void
gnc_guile_bindings_init(void)
{
if (!is_initialized)
{
/* Do what's necessary to initialize the bindings */
scm_init_sw_core_utils_module();
is_initialized = 1;
}
}

View File

@@ -2,17 +2,11 @@
add_subdirectory(test)
# Command to generate the swig-core-utils-guile.c wrapper file
gnc_add_swig_guile_command (swig-core-utils-guile-c
SWIG_CORE_UTILS_GUILE_C swig-core-utils-guile.c
${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i ""
)
# Command to generate the swig-core-utils-python.c wrapper file
gnc_add_swig_python_command (swig-core-utils-python
SWIG_CORE_UTILS_PYTHON_C SWIG_CORE_UTILS_PYTHON_PY
swig-core-utils-python.c sw_core_utils.py
${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i ""
${CMAKE_SOURCE_DIR}/bindings/core-utils.i ${CMAKE_CURRENT_SOURCE_DIR}
)
set (core_utils_SOURCES
@@ -93,25 +87,24 @@ set(core_utils_noinst_HEADERS
)
set(core_utils_ALL_SOURCES ${core_utils_SOURCES} ${core_utils_noinst_HEADERS})
set(core_utils_ALL_LIBRARIES ${Boost_LIBRARIES} ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GTK_MAC_LDFLAGS})
set(core_utils_ALL_LIBRARIES ${Boost_LIBRARIES} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GTK_MAC_LDFLAGS})
set(core_utils_ALL_INCLUDES
${CMAKE_SOURCE_DIR}/common
${CMAKE_BINARY_DIR}/common
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${GLIB2_INCLUDE_DIRS}
${GUILE_INCLUDE_DIRS}
${GTK_MAC_INCLUDE_DIRS})
set_local_dist(core_utils_DIST_local ${core_utils_ALL_SOURCES} CMakeLists.txt core-utils.i core-utils.scm gncla-dir.h.in)
set_local_dist(core_utils_DIST_local ${core_utils_ALL_SOURCES} CMakeLists.txt gncla-dir.h.in)
set(core_utils_DIST ${core_utils_DIST_local} ${test_core_utils_DIST} PARENT_SCOPE)
if (MAC_INTEGRATION)
list(APPEND core_utils_ALL_LIBRARIES ${OSX_EXTRA_LIBRARIES})
endif()
add_library(gnc-core-utils ${core_utils_ALL_SOURCES} ${SWIG_CORE_UTILS_GUILE_C})
add_dependencies(gnc-core-utils gnc-vcs-info swig-runtime-h)
add_library(gnc-core-utils ${core_utils_ALL_SOURCES})
add_dependencies(gnc-core-utils gnc-vcs-info)
target_link_libraries(gnc-core-utils ${core_utils_ALL_LIBRARIES})
@@ -170,17 +163,3 @@ endif()
# No headers to install
# Scheme
set (core_utils_SCHEME core-utils.scm)
set(GUILE_OUTPUT_DIR gnucash)
set(GUILE_DEPENDS gnc-core-utils)
gnc_add_scheme_targets(scm-core-utils
"${core_utils_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_DEPENDS}"
FALSE
)

View File

@@ -1,5 +1,6 @@
# This is a list of files which contain translatable strings.
# This file was autogenerated by cmake.
bindings/guile/core-utils.scm
bindings/guile/gnc-guile-bindings.c
bindings/guile/gnc-guile-utils.c
bindings/guile/price-quotes.scm
@@ -603,7 +604,6 @@ libgnucash/backend/xml/sixtp-stack.cpp
libgnucash/backend/xml/sixtp-to-dom-parser.cpp
libgnucash/backend/xml/sixtp-utils.cpp
libgnucash/core-utils/binreloc.c
libgnucash/core-utils/core-utils.scm
libgnucash/core-utils/gnc-environment.c
libgnucash/core-utils/gnc-filepath-utils.cpp
libgnucash/core-utils/gnc-gkeyfile-utils.c