Files
Ange-Marie MAURIN - A2M Systèmes d080da0ee3 build: base CMake, presets et vérification locale
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.
2026-11-06 19:32:10 +01:00

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