93 lines
1.9 KiB
Bash
Executable file
93 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
set -euox pipefail
|
|
shopt -s nocasematch # Enable case-insensitive matching
|
|
|
|
BUILD_TARGET=""
|
|
if [[ ${1:-} ]]; then
|
|
BUILD_TARGET="--target $1"
|
|
fi
|
|
|
|
SRC=${SRC:-${PWD}}
|
|
OS=$(uname)
|
|
|
|
CMAKE_QT_DIR=""
|
|
if [[ ${QT_DIR:-} ]]; then
|
|
CMAKE_QT_DIR="-DQt5_DIR=${QT_DIR}"
|
|
fi
|
|
|
|
CMAKE_SANITIZER=""
|
|
if [[ ${SANITIZER:-} ]]; then
|
|
case "${SANITIZER}" in
|
|
ASAN)
|
|
CMAKE_SANITIZER="-DNANO_ASAN=ON"
|
|
;;
|
|
ASAN_INT)
|
|
CMAKE_SANITIZER="-DNANO_ASAN_INT=ON"
|
|
;;
|
|
TSAN)
|
|
CMAKE_SANITIZER="-DNANO_TSAN=ON"
|
|
;;
|
|
UBSAN)
|
|
CMAKE_SANITIZER="-DNANO_UBSAN=ON"
|
|
;;
|
|
LEAK)
|
|
CMAKE_SANITIZER="-DNANO_ASAN=ON"
|
|
;;
|
|
*)
|
|
echo "Unknown sanitizer: '${SANITIZER}'"
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
BUILD_DIR="build"
|
|
|
|
mkdir -p $BUILD_DIR
|
|
pushd $BUILD_DIR
|
|
|
|
cmake \
|
|
-DCMAKE_BUILD_TYPE=${BUILD_TYPE:-"Debug"} \
|
|
-DPORTABLE=ON \
|
|
-DACTIVE_NETWORK=nano_${NANO_NETWORK:-"live"}_network \
|
|
-DNANO_TEST=${NANO_TEST:-OFF} \
|
|
-DNANO_GUI=${NANO_GUI:-OFF} \
|
|
-DNANO_TRACING=${NANO_TRACING:-OFF} \
|
|
-DCOVERAGE=${COVERAGE:-OFF} \
|
|
-DCI_TAG=${CI_TAG:-OFF} \
|
|
-DCI_VERSION_PRE_RELEASE=${CI_VERSION_PRE_RELEASE:-OFF} \
|
|
${CMAKE_SANITIZER:-} \
|
|
${CMAKE_QT_DIR:-} \
|
|
${SRC}
|
|
|
|
number_of_processors() {
|
|
case "$(uname -s)" in
|
|
Linux*)
|
|
nproc
|
|
;;
|
|
Darwin*)
|
|
sysctl -n hw.ncpu
|
|
;;
|
|
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
|
echo "${NUMBER_OF_PROCESSORS}"
|
|
;;
|
|
*)
|
|
echo "Unknown OS"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
parallel_build_flag() {
|
|
case "$(uname -s)" in
|
|
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
|
echo "-- -m"
|
|
;;
|
|
*)
|
|
echo "--parallel $(number_of_processors)"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
cmake --build ${PWD} ${BUILD_TARGET} $(parallel_build_flag)
|
|
|
|
popd
|