CMake 3.25+, C++20, avertissements stricts, règles de déterminisme (pas de fast-math ni de contraction FMA), sanitizers et clang-tidy optionnels, doctest. Presets Windows/Linux/macOS, scripts build.ps1, build.sh et check.ps1 (pas de CI serveur). README de core, 3d et schema.
34 lines
928 B
Bash
34 lines
928 B
Bash
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
#
|
|
# Build local Linux / macOS : configure, compile et teste un preset CMake.
|
|
#
|
|
# ./scripts/build.sh # preset par défaut de la plateforme
|
|
# ./scripts/build.sh linux-clang-sanitize
|
|
# CLEAN=1 NO_TESTS=1 ./scripts/build.sh
|
|
|
|
set -euo pipefail
|
|
|
|
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
case "$(uname -s)" in
|
|
Linux) default_preset="linux-gcc-debug" ;;
|
|
Darwin) default_preset="macos-clang-debug" ;;
|
|
*) echo "Plateforme non gérée : utiliser scripts/build.ps1 sous Windows." >&2; exit 1 ;;
|
|
esac
|
|
preset="${1:-$default_preset}"
|
|
|
|
cd "$root"
|
|
if [[ "${CLEAN:-0}" == "1" ]]; then
|
|
rm -rf "build/$preset"
|
|
fi
|
|
|
|
echo "==> configure $preset"
|
|
cmake --preset "$preset"
|
|
echo "==> build $preset"
|
|
cmake --build --preset "$preset"
|
|
if [[ "${NO_TESTS:-0}" != "1" ]]; then
|
|
echo "==> test $preset"
|
|
ctest --preset "$preset"
|
|
fi
|