#!/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_source in core/tests/*_test.cpp; do test_name="$(basename "$test_source" .cpp)" "$cxx" "${flags[@]}" -UNDEBUG "$test_source" build/core.o build/workflow.o -o "build/$test_name" "./build/$test_name" done