mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-11 21:20:39 +02:00
Omitting values is brittle, because a name mismatch can not be distinguished from a falsy (omitted) value.
103 lines
3.3 KiB
CMake
103 lines
3.3 KiB
CMake
# Copyright (c) 2023-present The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or https://opensource.org/license/mit/.
|
|
|
|
function(create_test_config)
|
|
set(abs_top_srcdir ${PROJECT_SOURCE_DIR})
|
|
set(abs_top_builddir ${PROJECT_BINARY_DIR})
|
|
set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
|
|
|
|
macro(set_configure_variable var conf_var)
|
|
if(${var})
|
|
set(${conf_var}_VALUE true)
|
|
else()
|
|
set(${conf_var}_VALUE false)
|
|
endif()
|
|
endmacro()
|
|
|
|
set_configure_variable(ENABLE_WALLET ENABLE_WALLET)
|
|
set_configure_variable(BUILD_BENCH BUILD_BENCH)
|
|
set_configure_variable(BUILD_CLI BUILD_BITCOIN_CLI)
|
|
set_configure_variable(BUILD_TX BUILD_BITCOIN_TX)
|
|
set_configure_variable(BUILD_UTIL BUILD_BITCOIN_UTIL)
|
|
set_configure_variable(BUILD_UTIL_CHAINSTATE BUILD_BITCOIN_CHAINSTATE)
|
|
set_configure_variable(BUILD_WALLET_TOOL BUILD_BITCOIN_WALLET)
|
|
set_configure_variable(BUILD_DAEMON BUILD_BITCOIND)
|
|
set_configure_variable(BUILD_FUZZ_BINARY ENABLE_FUZZ_BINARY)
|
|
set_configure_variable(WITH_ZMQ ENABLE_ZMQ)
|
|
set_configure_variable(WITH_EMBEDDED_ASMAP ENABLE_EMBEDDED_ASMAP)
|
|
set_configure_variable(ENABLE_EXTERNAL_SIGNER ENABLE_EXTERNAL_SIGNER)
|
|
set_configure_variable(WITH_USDT ENABLE_USDT_TRACEPOINTS)
|
|
set_configure_variable(ENABLE_IPC ENABLE_IPC)
|
|
set_configure_variable(BUILD_GUI BUILD_GUI)
|
|
|
|
configure_file(config.ini.in config.ini USE_SOURCE_PERMISSIONS @ONLY)
|
|
endfunction()
|
|
|
|
create_test_config()
|
|
|
|
|
|
function(create_test_directory_links)
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
|
|
file(GLOB functional
|
|
LIST_DIRECTORIES FALSE
|
|
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
functional/*.html
|
|
functional/*.py
|
|
)
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/data)
|
|
file(GLOB functional_data
|
|
LIST_DIRECTORIES FALSE
|
|
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
functional/data/*.json
|
|
functional/data/*.py
|
|
)
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/mocks)
|
|
file(GLOB functional_mocks
|
|
LIST_DIRECTORIES FALSE
|
|
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
functional/mocks/*.py
|
|
)
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/test_framework)
|
|
file(GLOB functional_test_framework
|
|
LIST_DIRECTORIES FALSE
|
|
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
functional/test_framework/*.csv
|
|
functional/test_framework/*.py
|
|
)
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional/test_framework/crypto)
|
|
file(GLOB functional_test_framework_crypto
|
|
LIST_DIRECTORIES FALSE
|
|
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
functional/test_framework/crypto/*.csv
|
|
functional/test_framework/crypto/*.py
|
|
)
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
|
|
set(files_to_link
|
|
${functional}
|
|
${functional_data}
|
|
${functional_mocks}
|
|
${functional_test_framework}
|
|
${functional_test_framework_crypto}
|
|
fuzz/test_runner.py
|
|
)
|
|
|
|
foreach(f IN LISTS files_to_link)
|
|
if(CMAKE_HOST_WIN32)
|
|
set(symlink)
|
|
else()
|
|
set(symlink SYMBOLIC)
|
|
endif()
|
|
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${f} ${CMAKE_CURRENT_BINARY_DIR}/${f} COPY_ON_ERROR ${symlink})
|
|
endforeach()
|
|
|
|
configure_file(${PROJECT_SOURCE_DIR}/src/test/data/siphash.json ${PROJECT_BINARY_DIR}/src/test/data/siphash.json COPYONLY)
|
|
endfunction()
|
|
|
|
create_test_directory_links()
|