CMakeLists.txt raw
1 # Copyright (c) 2023-present The Limenka developers
2 # Distributed under the MIT software license, see the accompanying
3 # file COPYING or https://opensource.org/license/mit/.
4
5 function(create_test_config)
6 set(abs_top_srcdir ${PROJECT_SOURCE_DIR})
7 set(abs_top_builddir ${PROJECT_BINARY_DIR})
8 set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
9
10 macro(set_configure_variable var conf_var)
11 if(${var})
12 set(${conf_var}_TRUE "")
13 else()
14 set(${conf_var}_TRUE "#")
15 endif()
16 endmacro()
17
18 set_configure_variable(ENABLE_WALLET ENABLE_WALLET)
19 set_configure_variable(WITH_SQLITE USE_SQLITE)
20 set_configure_variable(WITH_BDB USE_BDB)
21 set_configure_variable(BUILD_CLI BUILD_LIMENKA_CLI)
22 set_configure_variable(BUILD_UTIL BUILD_LIMENKA_UTIL)
23 set_configure_variable(BUILD_WALLET_TOOL BUILD_LIMENKA_WALLET)
24 set_configure_variable(BUILD_DAEMON BUILD_LIMENKAD)
25 set_configure_variable(BUILD_FUZZ_BINARY ENABLE_FUZZ_BINARY)
26 set_configure_variable(WITH_ZMQ ENABLE_ZMQ)
27 set_configure_variable(ENABLE_EXTERNAL_SIGNER ENABLE_EXTERNAL_SIGNER)
28 set_configure_variable(WITH_USDT ENABLE_USDT_TRACEPOINTS)
29
30 configure_file(config.ini.in config.ini USE_SOURCE_PERMISSIONS @ONLY)
31 endfunction()
32
33 create_test_config()
34
35 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
36 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
37 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/util)
38
39 file(GLOB_RECURSE functional_tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} functional/*)
40 foreach(script ${functional_tests} fuzz/test_runner.py util/rpcauth-test.py util/test_runner.py)
41 if(CMAKE_HOST_WIN32)
42 set(symlink)
43 else()
44 set(symlink SYMBOLIC)
45 endif()
46 file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR ${symlink})
47 endforeach()
48 unset(functional_tests)
49