gnucash/libgnucash/gnc-module/test/CMakeLists.txt
2019-12-06 19:59:12 +01:00

105 lines
2.7 KiB
CMake

add_subdirectory(mod-foo)
add_subdirectory(mod-bar)
add_subdirectory(mod-baz)
add_subdirectory(misc-mods)
set(GNC_MODULE_TEST_INCLUDE_DIRS
${CMAKE_BINARY_DIR}/common # for config.h
${CMAKE_SOURCE_DIR}/libgnucash/gnc-module
${CMAKE_SOURCE_DIR}/common/test-core
${GLIB2_INCLUDE_DIRS}
${GUILE_INCLUDE_DIRS}
)
set(GNC_MODULE_TEST_LIBS
gnc-module
test-core
gncmod-foo
gncmod-bar
gncmod-baz
gncmod-agedver
gncmod-futuremodsys
gncmod-incompatdep
)
gnc_add_test_with_guile(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS "GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test")
gnc_add_test_with_guile(test-modsysver test-modsysver.c
GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
)
gnc_add_test_with_guile(test-incompatdep test-incompatdep.c
GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
)
gnc_add_test_with_guile(test-agedver test-agedver.c
GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
"GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test"
)
set(_LIBDIR ${LIBDIR_BUILD})
if (WIN32)
set(_LIBDIR ${CMAKE_BINARY_DIR}/bin)
endif()
gnc_add_test(test-dynload test-dynload.c
GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
LIBDIR=${_LIBDIR}
)
set(test_gnc_module_SCHEME
test-gnc-module-scm-init.scm
test-gnc-module-load-scm.scm
test-gnc-module-swigged-c.scm
test-gnc-module-load-deps.scm
test-gnc-module-scm-dynload.scm
test-gnc-module-scm-module.scm
test-gnc-module-scm-multi.scm
)
set(CORE_GUILE_DEPENDS
scm-gnc-module
scm-test-core
scm-mod-foo
gncmod-bar
scm-mod-baz
gncmod-agedver
gncmod-incompatdep
gncmod-futuremodsys
)
gnc_add_scheme_test_targets(test-gnc-modules-scm
"${test_gnc_module_SCHEME}"
"tests"
"${CORE_GUILE_DEPENDS}"
TRUE
)
gnc_add_scheme_tests("${test_gnc_module_SCHEME}")
if(NOT WIN32)
# This little dance is needed because gnc_module_init will assert if
# it finds libgncmod-futuremod.so outside of a test that expects it.
get_guile_env()
set(_GNC_MODULE_PATH "${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${LIBDIR_BUILD}/gnucash/test")
foreach(test_file ${test_gnc_module_SCHEME})
get_filename_component(basename ${test_file} NAME_WE)
set_tests_properties(${basename} PROPERTIES ENVIRONMENT "${GUILE_ENV};GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
endforeach()
endif()
set(test_gnc_module_SOURCE_DIST
test-agedver.c
test-dynload.c
test-incompatdep.c
test-load-c.c
test-modsysver.c
)
set(test_gnc_module_EXTRA_DIST
README
${test_gnc_module_SCHEME}
)
set_local_dist(test_gnc_module_DIST_local CMakeLists.txt README ${test_gnc_module_SOURCE_DIST} ${test_gnc_module_EXTRA_DIST})
set(test_gnc_module_DIST ${test_gnc_module_DIST_local} ${misc_mods_DIST}
${mod_bar_DIST} ${mod_baz_DIST} ${mod_foo_DIST} PARENT_SCOPE)