Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
428 changes: 428 additions & 0 deletions CMakePresets.json

Large diffs are not rendered by default.

6 changes: 1 addition & 5 deletions ci/test/00_setup_env_arm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_freebsd_cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
8 changes: 1 addition & 7 deletions ci/test/00_setup_env_i686.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_mac_cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_mac_cross_intel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
8 changes: 1 addition & 7 deletions ci/test/00_setup_env_mac_native.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
3 changes: 1 addition & 2 deletions ci/test/00_setup_env_mac_native_fuzz.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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=""
Expand Down
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_native_alpine_musl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
12 changes: 1 addition & 11 deletions ci/test/00_setup_env_native_asan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_native_chimera_lto.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
9 changes: 1 addition & 8 deletions ci/test/00_setup_env_native_fuzz.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
9 changes: 1 addition & 8 deletions ci/test/00_setup_env_native_fuzz_with_msan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_native_fuzz_with_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_native_iwyu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
9 changes: 1 addition & 8 deletions ci/test/00_setup_env_native_msan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
12 changes: 1 addition & 11 deletions ci/test/00_setup_env_native_previous_releases.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
8 changes: 1 addition & 7 deletions ci/test/00_setup_env_native_tidy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
6 changes: 1 addition & 5 deletions ci/test/00_setup_env_native_tsan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
7 changes: 1 addition & 6 deletions ci/test/00_setup_env_native_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
5 changes: 1 addition & 4 deletions ci/test/00_setup_env_s390x.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
12 changes: 3 additions & 9 deletions ci/test/03_test_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
Expand Down
Loading