#!/usr/bin/env bash set -euo pipefail project_root="$(cd "$(dirname "$0")/.." && pwd)" cd "$project_root" mkdir -p build cxx="${CXX:-g++}" flags=(-std=c++17 -O2 -Wall -Wextra -Werror -pthread -Icore/include) "$cxx" "${flags[@]}" -c core/src/core.cpp -o build/core.o "$cxx" "${flags[@]}" -c core/src/workflow.cpp -o build/workflow.o "$cxx" "${flags[@]}" -c core/src/sim_driver.cpp -o build/sim_driver.o "$cxx" "${flags[@]}" core/examples/demo.cpp build/core.o build/workflow.o build/sim_driver.o -o build/bt_demo for test_name in core_test workflow_test journal_failure_test preflight_test settlement_test proof_regression_test readiness_regression_test scenario_test lifecycle_test; do "$cxx" "${flags[@]}" "core/tests/$test_name.cpp" build/core.o build/workflow.o -o "build/$test_name" "./build/$test_name" done