From 654c8fc93bd8ff6f982c4811aea024cff470718d Mon Sep 17 00:00:00 2001 From: will Date: Fri, 29 May 2026 12:14:52 +0100 Subject: [PATCH 1/2] Add explicit CI CMake presets Make each CI configure environment self-contained so the jobs can later switch from ad hoc CMake flags without relying on an inherited dev-mode preset. Include the shared options assembled by the CI test script in the presets. This keeps the future cutover mechanical while leaving the CI scripts unchanged for now. --- CMakePresets.json | 428 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 428 insertions(+) diff --git a/CMakePresets.json b/CMakePresets.json index 06ce4438ea2c..8ff3d5d8deb3 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -74,6 +74,434 @@ "ENABLE_IPC": "ON", "WITH_USDT": "ON" } + }, + { + "name": "ci-arm-linux", + "displayName": "CI arm-linux-gnueabihf cross build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_FLAGS": "-Wno-psabi -Wno-error=maybe-uninitialized", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-freebsd-cross", + "displayName": "CI FreeBSD cross build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "OFF" + } + }, + { + "name": "ci-i686", + "displayName": "CI i686 Linux build", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE", + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_C_COMPILER": "clang;-m32", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++;-m32", + "ENABLE_IPC": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-macos-cross-arm64", + "displayName": "CI macOS arm64 cross build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "OFF" + } + }, + { + "name": "ci-macos-cross-x86_64", + "displayName": "CI macOS x86_64 cross build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "OFF" + } + }, + { + "name": "ci-macos-native", + "displayName": "CI macOS native build", + "generator": "Ninja", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_EXE_LINKER_FLAGS": "-Wl,-stack_size -Wl,0x80000", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "OFF" + } + }, + { + "name": "ci-macos-native-fuzz", + "displayName": "CI macOS native fuzz build", + "generator": "Ninja", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG", + "BUILD_BENCH": "ON", + "BUILD_FOR_FUZZING": "ON", + "BUILD_FUZZ_BINARY": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_EXE_LINKER_FLAGS": "-Wl,-stack_size -Wl,0x80000" + } + }, + { + "name": "ci-native-alpine-musl", + "displayName": "CI Alpine musl build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-asan", + "displayName": "CI native ASan build", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-DARENA_DEBUG -DDEBUG_LOCKORDER", + "APPEND_CXXFLAGS": "-std=c++23", + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_C_COMPILER": "clang", + "CMAKE_C_FLAGS": "-ftrivial-auto-var-init=pattern", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++", + "CMAKE_CXX_FLAGS": "-ftrivial-auto-var-init=pattern", + "CMAKE_EXE_LINKER_FLAGS": "-fuse-ld=mold", + "ENABLE_IPC": "ON", + "SANITIZERS": "address,float-divide-by-zero,integer,undefined", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-chimera-lto", + "displayName": "CI Chimera Linux LTO build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_INTERPROCEDURAL_OPTIMIZATION": "ON", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-fuzz", + "displayName": "CI native fuzz build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_FOR_FUZZING": "ON", + "BUILD_FUZZ_BINARY": "ON", + "CMAKE_C_COMPILER": "clang", + "CMAKE_C_FLAGS": "-ftrivial-auto-var-init=pattern", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++", + "CMAKE_CXX_FLAGS": "-ftrivial-auto-var-init=pattern", + "SANITIZERS": "fuzzer,address,undefined,float-divide-by-zero,integer" + } + }, + { + "name": "ci-native-fuzz-msan", + "displayName": "CI native fuzz MSan build", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE -U_FORTIFY_SOURCE", + "BUILD_BENCH": "ON", + "BUILD_FOR_FUZZING": "ON", + "BUILD_FUZZ_BINARY": "ON", + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_C_FLAGS_DEBUG": "", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_FLAGS_DEBUG": "", + "SANITIZERS": "memory" + } + }, + { + "name": "ci-native-fuzz-valgrind", + "displayName": "CI native fuzz Valgrind build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_FOR_FUZZING": "ON", + "BUILD_FUZZ_BINARY": "ON", + "CMAKE_C_COMPILER": "clang", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++" + } + }, + { + "name": "ci-native-iwyu", + "displayName": "CI native include-what-you-use build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_C_COMPILER": "clang-$env{IWYU_LLVM_V}", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++-$env{IWYU_LLVM_V}", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "ENABLE_IPC": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-msan", + "displayName": "CI native MSan build", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-U_FORTIFY_SOURCE", + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_C_FLAGS_DEBUG": "", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_FLAGS_DEBUG": "", + "ENABLE_IPC": "ON", + "SANITIZERS": "memory", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-previous-releases", + "displayName": "CI native previous releases build", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE", + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_C_FLAGS": "-funsigned-char -Werror", + "CMAKE_C_FLAGS_DEBUG": "-g2 -O2", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_FLAGS": "-funsigned-char -Werror", + "CMAKE_CXX_FLAGS_DEBUG": "-g2 -O2", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-tidy", + "displayName": "CI native clang-tidy build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_C_COMPILER": "clang-$env{TIDY_LLVM_V}", + "CMAKE_C_FLAGS_RELWITHDEBINFO": "-O0 -g0", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++-$env{TIDY_LLVM_V}", + "CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-O0 -g0", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "ENABLE_IPC": "ON", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-tsan", + "displayName": "CI native TSan build", + "errors": {"dev": true}, + "cacheVariables": { + "APPEND_CPPFLAGS": "-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES", + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "ENABLE_IPC": "ON", + "SANITIZERS": "thread", + "WITH_USDT": "ON" + } + }, + { + "name": "ci-native-valgrind", + "displayName": "CI native Valgrind build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_C_COMPILER": "clang", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "CMAKE_CXX_COMPILER": "clang++", + "ENABLE_IPC": "ON", + "WITH_USDT": "OFF" + } + }, + { + "name": "ci-s390x", + "displayName": "CI s390x Linux build", + "errors": {"dev": true}, + "cacheVariables": { + "BUILD_BENCH": "ON", + "BUILD_CLI": "ON", + "BUILD_DAEMON": "ON", + "BUILD_FUZZ_BINARY": "ON", + "BUILD_KERNEL_LIB": "ON", + "BUILD_SHARED_LIBS": "ON", + "BUILD_TESTS": "ON", + "BUILD_TX": "ON", + "BUILD_UTIL": "ON", + "BUILD_UTIL_CHAINSTATE": "ON", + "CMAKE_COMPILE_WARNING_AS_ERROR": "ON", + "ENABLE_IPC": "ON", + "REDUCE_EXPORTS": "ON", + "WITH_USDT": "ON" + } } ] } From 0fdec545ee856055f4742291b32adc03feef8994 Mon Sep 17 00:00:00 2001 From: will Date: Fri, 29 May 2026 12:22:27 +0100 Subject: [PATCH 2/2] Switch CI jobs to CMake presets Use the explicit ci-* presets from the setup environment files and remove the duplicated per-job CMake flags now owned by those presets. Keep only caller-specific path options in the shared test script, so CI still supplies its depends toolchain and install prefix without baking those paths into reusable presets. --- ci/test/00_setup_env_arm.sh | 6 +----- ci/test/00_setup_env_freebsd_cross.sh | 6 +----- ci/test/00_setup_env_i686.sh | 8 +------- ci/test/00_setup_env_mac_cross.sh | 6 +----- ci/test/00_setup_env_mac_cross_intel.sh | 6 +----- ci/test/00_setup_env_mac_native.sh | 8 +------- ci/test/00_setup_env_mac_native_fuzz.sh | 3 +-- ci/test/00_setup_env_native_alpine_musl.sh | 6 +----- ci/test/00_setup_env_native_asan.sh | 12 +----------- ci/test/00_setup_env_native_chimera_lto.sh | 6 +----- ci/test/00_setup_env_native_fuzz.sh | 9 +-------- ci/test/00_setup_env_native_fuzz_with_msan.sh | 9 +-------- ci/test/00_setup_env_native_fuzz_with_valgrind.sh | 6 +----- ci/test/00_setup_env_native_iwyu.sh | 6 +----- ci/test/00_setup_env_native_msan.sh | 9 +-------- ci/test/00_setup_env_native_previous_releases.sh | 12 +----------- ci/test/00_setup_env_native_tidy.sh | 8 +------- ci/test/00_setup_env_native_tsan.sh | 6 +----- ci/test/00_setup_env_native_valgrind.sh | 7 +------ ci/test/00_setup_env_s390x.sh | 5 +---- ci/test/03_test_script.sh | 12 +++--------- 21 files changed, 23 insertions(+), 133 deletions(-) diff --git a/ci/test/00_setup_env_arm.sh b/ci/test/00_setup_env_arm.sh index 407f836ab9f1..2917770bcf3d 100755 --- a/ci/test/00_setup_env_arm.sh +++ b/ci/test/00_setup_env_arm.sh @@ -16,8 +16,4 @@ export GOAL="install" export CI_LIMIT_STACK_SIZE=1 # -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1" # This could be removed once the ABI change warning does not show up by default -export BITCOIN_CONFIG=" \ - --preset=dev-mode \ - -DREDUCE_EXPORTS=ON \ - -DCMAKE_CXX_FLAGS='-Wno-psabi -Wno-error=maybe-uninitialized' \ -" +export BITCOIN_CONFIG="--preset=ci-arm-linux" diff --git a/ci/test/00_setup_env_freebsd_cross.sh b/ci/test/00_setup_env_freebsd_cross.sh index da7304d1d26d..d4919d55e15d 100755 --- a/ci/test/00_setup_env_freebsd_cross.sh +++ b/ci/test/00_setup_env_freebsd_cross.sh @@ -14,10 +14,6 @@ export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} lld" export HOST=x86_64-unknown-freebsd export DEP_OPTS="build_CC=clang build_CXX=clang++ AR=llvm-ar-${APT_LLVM_V} STRIP=llvm-strip-${APT_LLVM_V} NM=llvm-nm-${APT_LLVM_V} RANLIB=llvm-ranlib-${APT_LLVM_V}" export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DREDUCE_EXPORTS=ON \ - -DWITH_USDT=OFF \ -" +export BITCOIN_CONFIG="--preset=ci-freebsd-cross" export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false diff --git a/ci/test/00_setup_env_i686.sh b/ci/test/00_setup_env_i686.sh index fce4a16e4b70..7ea763fea631 100755 --- a/ci/test/00_setup_env_i686.sh +++ b/ci/test/00_setup_env_i686.sh @@ -15,10 +15,4 @@ export PACKAGES="llvm clang g++-multilib" export DEP_OPTS="DEBUG=1" export GOAL="install" export CI_LIMIT_STACK_SIZE=1 -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_C_COMPILER='clang;-m32' \ - -DCMAKE_CXX_COMPILER='clang++;-m32' \ - -DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE' \ -" +export BITCOIN_CONFIG="--preset=ci-i686" diff --git a/ci/test/00_setup_env_mac_cross.sh b/ci/test/00_setup_env_mac_cross.sh index f872db645198..4dce32543782 100755 --- a/ci/test/00_setup_env_mac_cross.sh +++ b/ci/test/00_setup_env_mac_cross.sh @@ -17,8 +17,4 @@ export XCODE_BUILD_ID=17B100 export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DWITH_USDT=OFF \ - -DREDUCE_EXPORTS=ON \ -" +export BITCOIN_CONFIG="--preset=ci-macos-cross-arm64" diff --git a/ci/test/00_setup_env_mac_cross_intel.sh b/ci/test/00_setup_env_mac_cross_intel.sh index 5eed3aa122c3..3c5292cb0c78 100755 --- a/ci/test/00_setup_env_mac_cross_intel.sh +++ b/ci/test/00_setup_env_mac_cross_intel.sh @@ -17,8 +17,4 @@ export XCODE_BUILD_ID=17B100 export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DWITH_USDT=OFF \ - -DREDUCE_EXPORTS=ON \ -" +export BITCOIN_CONFIG="--preset=ci-macos-cross-x86_64" diff --git a/ci/test/00_setup_env_mac_native.sh b/ci/test/00_setup_env_mac_native.sh index a8bac8ba93c2..d99d6696dea2 100755 --- a/ci/test/00_setup_env_mac_native.sh +++ b/ci/test/00_setup_env_mac_native.sh @@ -9,14 +9,8 @@ export LC_ALL=C.UTF-8 export CONTAINER_NAME="ci_mac_native" # macos does not use a container, but the env var is needed for logging export PIP_PACKAGES="--break-system-packages pycapnp" export GOAL="install" -export CMAKE_GENERATOR="Ninja" export CI_OS_NAME="macos" export NO_DEPENDS=1 export OSX_SDK="" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DWITH_USDT=OFF \ - -DREDUCE_EXPORTS=ON \ - -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000' \ -" +export BITCOIN_CONFIG="--preset=ci-macos-native" export BITCOIN_CMD="bitcoin -m" # Used in functional tests diff --git a/ci/test/00_setup_env_mac_native_fuzz.sh b/ci/test/00_setup_env_mac_native_fuzz.sh index ea074e47732f..5ac4040a8650 100755 --- a/ci/test/00_setup_env_mac_native_fuzz.sh +++ b/ci/test/00_setup_env_mac_native_fuzz.sh @@ -7,8 +7,7 @@ export LC_ALL=C.UTF-8 export CONTAINER_NAME="ci_mac_native_fuzz" # macos does not use a container, but the env var is needed for logging -export CMAKE_GENERATOR="Ninja" -export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000' -DAPPEND_CPPFLAGS='-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG'" +export BITCOIN_CONFIG="--preset=ci-macos-native-fuzz" export CI_OS_NAME="macos" export NO_DEPENDS=1 export OSX_SDK="" diff --git a/ci/test/00_setup_env_native_alpine_musl.sh b/ci/test/00_setup_env_native_alpine_musl.sh index fbb7d68beb88..4f63472997e9 100755 --- a/ci/test/00_setup_env_native_alpine_musl.sh +++ b/ci/test/00_setup_env_native_alpine_musl.sh @@ -12,10 +12,6 @@ export CI_BASE_PACKAGES="build-base musl-dev pkgconf curl ccache make ninja git export PIP_PACKAGES="--break-system-packages pycapnp" export DEP_OPTS="DEBUG=1" export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DREDUCE_EXPORTS=ON \ - -DCMAKE_BUILD_TYPE=Debug \ -" +export BITCOIN_CONFIG="--preset=ci-native-alpine-musl" export TEST_RUNNER_EXTRA="--v2transport --usecli --extended" export BITCOIN_CMD="bitcoin -m" # Used in functional tests diff --git a/ci/test/00_setup_env_native_asan.sh b/ci/test/00_setup_env_native_asan.sh index 7d631761503e..08d848282197 100755 --- a/ci/test/00_setup_env_native_asan.sh +++ b/ci/test/00_setup_env_native_asan.sh @@ -25,14 +25,4 @@ export PIP_PACKAGES="--break-system-packages pycapnp" export NO_DEPENDS=1 export GOAL="install" export CI_LIMIT_STACK_SIZE=1 -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DSANITIZERS=address,float-divide-by-zero,integer,undefined \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \ - -DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \ - -DCMAKE_EXE_LINKER_FLAGS='-fuse-ld=mold' \ - -DAPPEND_CXXFLAGS='-std=c++23' \ - -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' \ -" +export BITCOIN_CONFIG="--preset=ci-native-asan" diff --git a/ci/test/00_setup_env_native_chimera_lto.sh b/ci/test/00_setup_env_native_chimera_lto.sh index 1bca07a8a809..337ea5220f05 100755 --- a/ci/test/00_setup_env_native_chimera_lto.sh +++ b/ci/test/00_setup_env_native_chimera_lto.sh @@ -15,8 +15,4 @@ export CI_BASE_PACKAGES="ccache chimerautils chimerautils-extra clang cmake curl export PIP_PACKAGES="--break-system-packages pycapnp" export DEP_OPTS="build_CC=clang build_CXX=clang++ build_TAR=gtar AR=llvm-ar CC=clang CXX=clang++ NM=llvm-nm RANLIB=llvm-ranlib STRIP=llvm-strip" export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DREDUCE_EXPORTS=ON \ - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ -" +export BITCOIN_CONFIG="--preset=ci-native-chimera-lto" diff --git a/ci/test/00_setup_env_native_fuzz.sh b/ci/test/00_setup_env_native_fuzz.sh index 61cacbc87138..84e48caed06f 100755 --- a/ci/test/00_setup_env_native_fuzz.sh +++ b/ci/test/00_setup_env_native_fuzz.sh @@ -16,11 +16,4 @@ export RUN_FUNCTIONAL_TESTS=false export RUN_FUZZ_TESTS=true export GOAL="all" export CI_CONTAINER_CAP="--cap-add SYS_PTRACE" # If run with (ASan + LSan), the container needs access to ptrace (https://github.com/google/sanitizers/issues/764) -export BITCOIN_CONFIG="\ - -DBUILD_FOR_FUZZING=ON \ - -DSANITIZERS=fuzzer,address,undefined,float-divide-by-zero,integer \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \ - -DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \ -" +export BITCOIN_CONFIG="--preset=ci-native-fuzz" diff --git a/ci/test/00_setup_env_native_fuzz_with_msan.sh b/ci/test/00_setup_env_native_fuzz_with_msan.sh index b7c782d2805f..93569a76b3bd 100755 --- a/ci/test/00_setup_env_native_fuzz_with_msan.sh +++ b/ci/test/00_setup_env_native_fuzz_with_msan.sh @@ -19,14 +19,7 @@ export DEP_OPTS="DEBUG=1 CC=clang CXX=clang++ CFLAGS='${MSAN_FLAGS}' CXXFLAGS='$ export GOAL="all" # Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered. # _FORTIFY_SOURCE is not compatible with MSAN. -export BITCOIN_CONFIG="\ - -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_C_FLAGS_DEBUG='' \ - -DCMAKE_CXX_FLAGS_DEBUG='' \ - -DBUILD_FOR_FUZZING=ON \ - -DSANITIZERS=memory \ - -DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE -U_FORTIFY_SOURCE' \ -" +export BITCOIN_CONFIG="--preset=ci-native-fuzz-msan" export USE_INSTRUMENTED_LIBCPP="MemoryWithOrigins" export RUN_UNIT_TESTS="false" export RUN_FUNCTIONAL_TESTS="false" diff --git a/ci/test/00_setup_env_native_fuzz_with_valgrind.sh b/ci/test/00_setup_env_native_fuzz_with_valgrind.sh index 6ea545239012..612bc594b466 100755 --- a/ci/test/00_setup_env_native_fuzz_with_valgrind.sh +++ b/ci/test/00_setup_env_native_fuzz_with_valgrind.sh @@ -15,8 +15,4 @@ export RUN_FUNCTIONAL_TESTS=false export RUN_FUZZ_TESTS=true export FUZZ_TESTS_CONFIG="--valgrind" export GOAL="all" -export BITCOIN_CONFIG="\ - -DBUILD_FOR_FUZZING=ON \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ -" +export BITCOIN_CONFIG="--preset=ci-native-fuzz-valgrind" diff --git a/ci/test/00_setup_env_native_iwyu.sh b/ci/test/00_setup_env_native_iwyu.sh index 52cb3f35b770..b34fe477ac33 100755 --- a/ci/test/00_setup_env_native_iwyu.sh +++ b/ci/test/00_setup_env_native_iwyu.sh @@ -18,8 +18,4 @@ export RUN_FUZZ_TESTS=false export RUN_CHECK_DEPS=false export RUN_IWYU=true export GOAL="codegen" -export BITCOIN_CONFIG="\ - --preset dev-mode \ - -DCMAKE_C_COMPILER=clang-${IWYU_LLVM_V} \ - -DCMAKE_CXX_COMPILER=clang++-${IWYU_LLVM_V} \ -" +export BITCOIN_CONFIG="--preset=ci-native-iwyu" diff --git a/ci/test/00_setup_env_native_msan.sh b/ci/test/00_setup_env_native_msan.sh index 0e1697bf6b4d..b5b3dbc047e4 100755 --- a/ci/test/00_setup_env_native_msan.sh +++ b/ci/test/00_setup_env_native_msan.sh @@ -21,12 +21,5 @@ export GOAL="install" export CI_LIMIT_STACK_SIZE=1 # Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered. # _FORTIFY_SOURCE is not compatible with MSAN. -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_C_FLAGS_DEBUG='' \ - -DCMAKE_CXX_FLAGS_DEBUG='' \ - -DSANITIZERS=memory \ - -DAPPEND_CPPFLAGS='-U_FORTIFY_SOURCE' \ -" +export BITCOIN_CONFIG="--preset=ci-native-msan" export USE_INSTRUMENTED_LIBCPP="MemoryWithOrigins" diff --git a/ci/test/00_setup_env_native_previous_releases.sh b/ci/test/00_setup_env_native_previous_releases.sh index 4eee435a3e15..adbad0ba7d2b 100755 --- a/ci/test/00_setup_env_native_previous_releases.sh +++ b/ci/test/00_setup_env_native_previous_releases.sh @@ -15,14 +15,4 @@ export TEST_RUNNER_EXTRA="--previous-releases --coverage --extended --exclude fe export GOAL="install" export CI_LIMIT_STACK_SIZE=1 export DOWNLOAD_PREVIOUS_RELEASES="true" -# Use -Werror as the CMake version does not support CMAKE_COMPILE_WARNING_AS_ERROR -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DREDUCE_EXPORTS=ON \ - -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_C_FLAGS='-funsigned-char -Werror' \ - -DCMAKE_C_FLAGS_DEBUG='-g2 -O2' \ - -DCMAKE_CXX_FLAGS='-funsigned-char -Werror' \ - -DCMAKE_CXX_FLAGS_DEBUG='-g2 -O2' \ - -DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE' \ -" +export BITCOIN_CONFIG="--preset=ci-native-previous-releases" diff --git a/ci/test/00_setup_env_native_tidy.sh b/ci/test/00_setup_env_native_tidy.sh index 8f7d6f9841f0..e74a30237025 100755 --- a/ci/test/00_setup_env_native_tidy.sh +++ b/ci/test/00_setup_env_native_tidy.sh @@ -18,10 +18,4 @@ export RUN_FUZZ_TESTS=false export RUN_CHECK_DEPS=true export RUN_TIDY=true export GOAL="install" -export BITCOIN_CONFIG="\ - --preset dev-mode \ - -DCMAKE_C_COMPILER=clang-${TIDY_LLVM_V} \ - -DCMAKE_CXX_COMPILER=clang++-${TIDY_LLVM_V} \ - -DCMAKE_C_FLAGS_RELWITHDEBINFO='-O0 -g0' \ - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O0 -g0' \ -" +export BITCOIN_CONFIG="--preset=ci-native-tidy" diff --git a/ci/test/00_setup_env_native_tsan.sh b/ci/test/00_setup_env_native_tsan.sh index e82e391c53eb..76292607f971 100755 --- a/ci/test/00_setup_env_native_tsan.sh +++ b/ci/test/00_setup_env_native_tsan.sh @@ -16,9 +16,5 @@ export PIP_PACKAGES="--break-system-packages pycapnp" export DEP_OPTS="CC=clang CXX=clang++ CXXFLAGS='${LIBCXX_FLAGS}'" export GOAL="install" export CI_LIMIT_STACK_SIZE=1 -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DSANITIZERS=thread \ - -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES' \ -" +export BITCOIN_CONFIG="--preset=ci-native-tsan" export USE_INSTRUMENTED_LIBCPP="Thread" diff --git a/ci/test/00_setup_env_native_valgrind.sh b/ci/test/00_setup_env_native_valgrind.sh index fbb4bb5c2eac..21e844ccb8c2 100755 --- a/ci/test/00_setup_env_native_valgrind.sh +++ b/ci/test/00_setup_env_native_valgrind.sh @@ -15,9 +15,4 @@ export NO_DEPENDS=1 # bind tests excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547 export TEST_RUNNER_EXTRA="--exclude rpc_bind --exclude feature_bind_extra" export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DWITH_USDT=OFF \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ -" +export BITCOIN_CONFIG="--preset=ci-native-valgrind" diff --git a/ci/test/00_setup_env_s390x.sh b/ci/test/00_setup_env_s390x.sh index 507ba652f95a..cfab5a19b2b5 100755 --- a/ci/test/00_setup_env_s390x.sh +++ b/ci/test/00_setup_env_s390x.sh @@ -14,7 +14,4 @@ export CI_IMAGE_PLATFORM="linux/s390x" export TEST_RUNNER_EXTRA="--exclude rpc_bind --exclude feature_bind_extra" export RUN_FUNCTIONAL_TESTS=true export GOAL="install" -export BITCOIN_CONFIG="\ - --preset=dev-mode \ - -DREDUCE_EXPORTS=ON \ -" +export BITCOIN_CONFIG="--preset=ci-s390x" diff --git a/ci/test/03_test_script.sh b/ci/test/03_test_script.sh index 8e38bef6ac9c..8729b7c7cb18 100755 --- a/ci/test/03_test_script.sh +++ b/ci/test/03_test_script.sh @@ -99,20 +99,14 @@ if [ "$DOWNLOAD_PREVIOUS_RELEASES" = "true" ]; then test/get_previous_releases.py --target-dir "$PREVIOUS_RELEASES_DIR" fi -BITCOIN_CONFIG_ALL="-DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON" -if [ -z "$NO_DEPENDS" ]; then - BITCOIN_CONFIG_ALL="${BITCOIN_CONFIG_ALL} -DCMAKE_TOOLCHAIN_FILE=$DEPENDS_DIR/$HOST/toolchain.cmake" -fi - ccache --zero-stats # Folder where the build is done. BASE_BUILD_DIR=${BASE_BUILD_DIR:-$BASE_SCRATCH_DIR/build-$HOST} -BITCOIN_CONFIG_ALL="$BITCOIN_CONFIG_ALL -DCMAKE_INSTALL_PREFIX=$BASE_OUTDIR -Werror=dev" - -if [[ "${RUN_IWYU}" == true || "${RUN_TIDY}" == true ]]; then - BITCOIN_CONFIG_ALL="$BITCOIN_CONFIG_ALL -DCMAKE_EXPORT_COMPILE_COMMANDS=ON" +BITCOIN_CONFIG_ALL="-DCMAKE_INSTALL_PREFIX=$BASE_OUTDIR" +if [ -z "$NO_DEPENDS" ]; then + BITCOIN_CONFIG_ALL="$BITCOIN_CONFIG_ALL -DCMAKE_TOOLCHAIN_FILE=$DEPENDS_DIR/$HOST/toolchain.cmake" fi eval "CMAKE_ARGS=($BITCOIN_CONFIG_ALL $BITCOIN_CONFIG)"