Tweak build targets

This commit is contained in:
Piotr Wójcik 2023-04-21 03:38:06 +02:00
commit 8e402852b4
5 changed files with 75 additions and 47 deletions

View file

@ -41,7 +41,7 @@ jobs:
- name: Build Tests
id: build
run: ci/build.sh
run: ci/build-tests.sh
- name: Save Build Cache
# Only save build cache from develop to avoid polluting it by other branches / PRs
@ -105,7 +105,7 @@ jobs:
- name: Build Tests
id: build
run: ci/build.sh
run: ci/build-tests.sh
- name: Save Build Cache
# Only save build cache from develop to avoid polluting it by other branches / PRs
@ -170,7 +170,7 @@ jobs:
- name: Build Tests
id: build
run: ci/build.sh
run: ci/build-tests.sh
shell: bash
- name: Save Build Cache

View file

@ -656,6 +656,12 @@ add_subdirectory(nano/nano_node)
add_subdirectory(nano/rpc)
add_subdirectory(nano/nano_rpc)
add_custom_target(
executables
COMMAND echo "BATCH BUILDING node + rpc"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS nano_node nano_rpc)
if(NANO_FUZZER_TEST)
if(NOT WIN32)
add_subdirectory(nano/fuzzer_test)
@ -694,15 +700,10 @@ if(NANO_TEST OR RAIBLOCKS_TEST)
add_subdirectory(nano/rpc_test)
add_subdirectory(nano/slow_test)
add_custom_target(
build_tests
all_tests
COMMAND echo "BATCH BUILDING TESTS"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS core_test load_test rpc_test nano_node nano_rpc)
add_custom_target(
run_tests
COMMAND ${PROJECT_SOURCE_DIR}/ci/test.sh ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS build_tests)
DEPENDS core_test load_test rpc_test slow_test nano_node nano_rpc)
endif()
if(NANO_TEST OR RAIBLOCKS_TEST)
@ -807,7 +808,7 @@ if(NANO_GUI OR RAIBLOCKS_GUI)
set_target_properties(
qt_test PROPERTIES COMPILE_FLAGS
"-DQT_NO_KEYWORDS -DBOOST_ASIO_HAS_STD_ARRAY=1")
add_dependencies(build_tests qt_test)
add_dependencies(all_tests qt_test)
endif()
if(APPLE)

4
ci/build-node.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
set -euox pipefail
$(dirname "$BASH_SOURCE")/build.sh executables

13
ci/build-tests.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
set -euox pipefail
BUILD_TYPE="Debug"
if [[ "${RELEASE:-false}" == "true" ]]; then
BUILD_TYPE="RelWithDebInfo"
fi
BUILD_TYPE=$BUILD_TYPE \
NANO_TEST=ON \
NANO_NETWORK=dev \
NANO_GUI=ON \
$(dirname "$BASH_SOURCE")/build.sh all_tests

View file

@ -1,52 +1,62 @@
#!/bin/bash
set -euox pipefail
NODE_SRC=${1:-${PWD}}
BUILD_TARGET=""
if [[ ${1:-} ]]; then
BUILD_TARGET="--target $1"
fi
NODE_SRC=${NODE_SRC:-${PWD}}
OS=$(uname)
BUILD_TYPE=${NANO_BUILD_TYPE:-Debug}
BUILD_TARGET=build_tests
if [[ "${RELEASE:-false}" == "true" ]]; then
BUILD_TYPE="RelWithDebInfo"
fi
if [[ ${NANO_ASAN_INT:-0} -eq 1 ]]; then
SANITIZERS="-DNANO_ASAN_INT=ON"
fi
if [[ ${NANO_ASAN:-0} -eq 1 ]]; then
SANITIZERS="-DNANO_ASAN=ON"
fi
if [[ ${NANO_TSAN:-0} -eq 1 ]]; then
SANITIZERS="-DNANO_TSAN=ON"
fi
if [[ ${NANO_COVERAGE:-0} -eq 1 ]]; then
SANITIZERS="-DCOVERAGE=ON"
fi
CMAKE_BACKTRACE=""
if [[ "$OS" == 'Linux' ]]; then
BACKTRACE="-DNANO_STACKTRACE_BACKTRACE=ON"
CMAKE_BACKTRACE="-DNANO_STACKTRACE_BACKTRACE=ON"
if [[ "$COMPILER" == 'clang' ]]; then
BACKTRACE="${BACKTRACE} -DNANO_BACKTRACE_INCLUDE=</tmp/backtrace.h>"
CMAKE_BACKTRACE="${CMAKE_BACKTRACE} -DNANO_BACKTRACE_INCLUDE=</tmp/backtrace.h>"
fi
else
BACKTRACE=""
fi
mkdir -p build
pushd build
CMAKE_QT_DIR=""
if [[ ${NANO_QT_DIR:-} ]]; then
CMAKE_QT_DIR="-DQt5_DIR=${NANO_QT_DIR}"
fi
CMAKE_SANITIZER=""
if [[ ${NANO_SANITIZER:-} ]]; then
case "${NANO_SANITIZER}" in
ASAN)
CMAKE_SANITIZER="-DNANO_ASAN=ON"
;;
ASAN_INT)
CMAKE_SANITIZER="-DNANO_ASAN_INT=ON"
;;
TSAN)
CMAKE_SANITIZER="-DNANO_TSAN=ON"
;;
*)
echo "Unknown sanitizer: '${NANO_SANITIZER}'"
exit 1
;;
esac
fi
BUILD_DIR="build"
mkdir -p $BUILD_DIR
pushd $BUILD_DIR
cmake \
-DACTIVE_NETWORK=nano_dev_network \
-DNANO_TEST=ON \
-DNANO_GUI=ON \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE:-"Debug"} \
-DPORTABLE=ON \
-DNANO_WARN_TO_ERR=ON \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DQt5_DIR=${NANO_QT_DIR:-} \
${BACKTRACE:-} \
${SANITIZERS:-} \
-DACTIVE_NETWORK=nano_${NANO_NETWORK:-"live"}_network \
-DNANO_TEST=${NANO_TEST:-OFF} \
-DNANO_GUI=${NANO_GUI:-OFF} \
-DCOVERAGE=${NANO_COVERAGE:-OFF} \
${CMAKE_SANITIZER:-} \
${CMAKE_QT_DIR:-} \
${CMAKE_BACKTRACE:-} \
${NODE_SRC}
number_of_processors() {
@ -78,6 +88,6 @@ parallel_build_flag() {
esac
}
cmake --build ${PWD} --target ${BUILD_TARGET} $(parallel_build_flag)
cmake --build ${PWD} ${BUILD_TARGET} $(parallel_build_flag)
popd
popd