#!/usr/bin/env bash # Build and run the game/events unit tests with plain g++ (no CMake needed). # tests/game_events/build_and_run.sh # BUILD_DIR=/some/dir tests/game_events/build_and_run.sh set -euo pipefail here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(cd "$here/../.." && pwd)" build="${BUILD_DIR:-$(mktemp -d "${TMPDIR:-/tmp}/sots-game-events.XXXXXX")}" mkdir -p "$build" CXX="${CXX:-g++}" CXXFLAGS="${CXXFLAGS:--std=c++17 -O1 -g -Wall -Wextra -Werror -pedantic}" srcs=("$root"/src/game/events/event_log.cpp "$root"/src/game/events/research_events.cpp) objs=() for s in "${srcs[@]}"; do o="$build/$(basename "${s%.cpp}").o" $CXX $CXXFLAGS -I"$root/src" -c "$s" -o "$o" objs+=("$o") done exe="$build/test_events" $CXX $CXXFLAGS -I"$root/src" -I"$here" -I"$root/tests/game_sim" "$here/test_events.cpp" "${objs[@]}" -o "$exe" if "$exe"; then echo "game_events: all tests passed (build dir $build)"; else echo "game_events: FAILURES (build dir $build)"; exit 1; fi