gnc-module - move guile wrappers to bindings/guile

This commit is contained in:
Geert Janssens
2019-11-19 16:40:41 +01:00
parent 096a515154
commit 6eb0ccfa11
9 changed files with 41 additions and 41 deletions

View File

@@ -6,5 +6,6 @@ set_local_dist(bindings_DIST_local
business-core.i
core-utils.i
engine.i
engine-common.i)
engine-common.i
gnc-module.i)
set(bindings_DIST ${bindings_DIST_local} ${guile_DIST} ${python_bindings_DIST} PARENT_SCOPE)

View File

@@ -20,6 +20,15 @@ gnc_add_swig_guile_command (swig-engine-c
${CMAKE_SOURCE_DIR}/bindings/engine-common.i
)
# Command to generate the swig-gnc-module.c wrapper file
gnc_swig_extract_header_files (gnc-module GNC_MODULE_HEADERS)
gnc_add_swig_guile_command (swig-gnc-module-c
SWIG_GNC_MODULE_C swig-gnc-module.c
${CMAKE_SOURCE_DIR}/bindings/gnc-module.i
"${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_SOURCE_DIR}/libgnucash/gnc-module"
${GNC_MODULE_HEADERS}
)
set(guile_HEADERS
glib-guile.h
gnc-engine-guile.h
@@ -37,7 +46,8 @@ add_library(gnucash-guile SHARED
${guile_SOURCES}
${guile_HEADERS}
${SWIG_CORE_UTILS_GUILE_C}
${SWIG_ENGINE_C})
${SWIG_ENGINE_C}
${SWIG_GNC_MODULE_C})
add_dependencies(gnucash-guile
swig-runtime-h)
@@ -57,6 +67,7 @@ target_link_libraries(gnucash-guile
PRIVATE
gnc-core-utils
gncmod-engine
gnc-module
${GLIB2_LDFLAGS})
install(TARGETS gnucash-guile
@@ -128,6 +139,17 @@ gnc_add_scheme_targets(scm-engine-2
add_custom_target(scm-engine ALL DEPENDS scm-engine-2 scm-engine-1 scm-engine-0)
set(scm_gnc_module_DEPENDS
gnc-module
gnucash-guile)
gnc_add_scheme_targets(scm-gnc-module
gnc-module.scm
gnucash
"${scm_gnc_module_DEPENDS}"
FALSE
)
gnc_add_scheme_targets(price-quotes
price-quotes.scm
gnucash
@@ -137,6 +159,7 @@ gnc_add_scheme_targets(price-quotes
set_local_dist(guile_DIST_local
CMakeLists.txt
core-utils.scm
gnc-module.scm
price-quotes.scm
${guile_SOURCES}
${guile_HEADERS}

View File

@@ -20,8 +20,6 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;; Copyright 2000 Rob Browning <rlb@cs.utexas.edu>
(use-modules (gnucash gnc-module))
(eval-when
(compile load eval expand)
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))

View File

@@ -34,6 +34,7 @@ static int is_initialized = 0;
extern SCM scm_init_sw_core_utils_module (void);
extern SCM scm_init_sw_engine_module (void);
extern SCM scm_init_sw_gnc_module_module (void);
void
gnc_guile_bindings_init(void)
@@ -43,6 +44,7 @@ gnc_guile_bindings_init(void)
/* Do what's necessary to initialize the bindings */
scm_init_sw_core_utils_module();
scm_init_sw_engine_module();
scm_init_sw_gnc_module_module();
is_initialized = 1;
}

View File

@@ -30,23 +30,20 @@
;; Guile 2 needs to find the symbols from the extension at compile time already
(eval-when
(compile load eval expand)
(load-extension "libgnc-module" "scm_init_sw_gnc_module_module"))
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
(use-modules (sw_gnc_module))
(define gnc:module-system-init gnc-module-system-init)
(define gnc:module-system-refresh gnc-module-system-refresh)
(define gnc:module-load gnc-module-load)
(define gnc:module-load-optional gnc-module-load-optional)
(define gnc:module-unload gnc-module-unload)
; Export the swig-wrapped symbols in the public interface of this module
(let ((i (module-public-interface (current-module))))
(module-use! i (resolve-interface '(sw_gnc_module))))
(export gnc:module-system-init)
(export gnc:module-system-refresh)
(export gnc:module-load)
(export gnc:module-load-optional)
(export gnc:module-unload)
(export gnc:module-begin-syntax)
(define-public gnc:module-system-init gnc-module-system-init)
(define-public gnc:module-system-refresh gnc-module-system-refresh)
(define-public gnc:module-load gnc-module-load)
(define-public gnc:module-load-optional gnc-module-load-optional)
(define-public gnc:module-unload gnc-module-unload)
;; Guile 2 needs to load external modules at compile time
(define-syntax-rule (gnc:module-begin-syntax form ...)
(eval-when (load compile eval expand) (begin form ...)))
(export gnc:module-begin-syntax)

View File

@@ -2,12 +2,6 @@
add_subdirectory(test)
add_subdirectory(example)
# Command to generate the swig-gnc-module.c wrapper file
gnc_add_swig_guile_command (swig-gnc-module-c
SWIG_GNC_MODULE_C swig-gnc-module.c
${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i ""
)
set (gnc_module_SOURCES gnc-module.c)
# Add dependency on config.h
@@ -21,7 +15,6 @@ set (gnc_module_HEADERS
add_library (gnc-module
${gnc_module_SOURCES}
${gnc_module_HEADERS}
${SWIG_GNC_MODULE_C}
)
target_link_libraries(gnc-module ${GUILE_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS})
@@ -43,20 +36,6 @@ install(TARGETS gnc-module
install(FILES ${gnc_module_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
# --- Compile Scheme file(s) ---
set (gnc_module_SCHEME gnc-module.scm)
set(GUILE_OUTPUT_DIR gnucash)
set(GUILE_DEPENDS gnc-module)
gnc_add_scheme_targets(scm-gnc-module
"${gnc_module_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_DEPENDS}"
FALSE
)
set_local_dist(gnc_module_DIST_local CMakeLists.txt ${gnc_module_SOURCES} ${gnc_module_HEADERS}
gnc-module.i gnc-module.scm README)
README)
set(gnc_module_DIST ${gnc_module_DIST_local} ${test_gnc_module_DIST} ${example_DIST} PARENT_SCOPE)

View File

@@ -56,7 +56,7 @@ set(test_gnc_module_SCHEME
)
set(CORE_GUILE_DEPENDS
gnc-module
scm-gnc-module
scm-test-core
scm-mod-foo
gncmod-bar

View File

@@ -10,6 +10,7 @@ bindings/guile/gnc-engine-guile.c
bindings/guile/gnc-guile-bindings.c
bindings/guile/gnc-guile-utils.c
bindings/guile/gnc-kvp-guile.cpp
bindings/guile/gnc-module.scm
bindings/guile/gnc-numeric.scm
bindings/guile/price-quotes.scm
bindings/guile/utilities.scm
@@ -688,7 +689,6 @@ libgnucash/engine/Transaction.c
libgnucash/engine/TransLog.c
libgnucash/gnc-module/example/gncmod-example.c
libgnucash/gnc-module/gnc-module.c
libgnucash/gnc-module/gnc-module.scm
libgnucash/tax/de_DE/tax.scm
libgnucash/tax/de_DE/txf-help.scm
libgnucash/tax/de_DE/txf.scm