Files
iKv/demo/build.sh
GigabiteStudios d0b02f4735
All checks were successful
Build / build-script (push) Successful in 12s
Build / cmake-build (push) Successful in 33s
Build / unit-tests (push) Successful in 29s
fix(build): link libm in repo build scripts
2026-06-17 12:18:25 -05:00

60 lines
1.4 KiB
Bash

#!/usr/bin/env sh
set -eu
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
ROOT_DIR=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
OUT_DIR="$SCRIPT_DIR/build"
DEMO_EXE="$OUT_DIR/ikv_demo"
TEST_EXE="$OUT_DIR/ikv_tests"
COV_DIR="$ROOT_DIR/coverage"
COV_EXE="$COV_DIR/ikv_tests_cov"
mkdir -p "$OUT_DIR"
cc -std=c11 -Wall -Wextra -pedantic \
-I"$ROOT_DIR/include" \
"$SCRIPT_DIR/main.c" \
"$ROOT_DIR/src/ikv.c" \
"$ROOT_DIR/src/loaders/ikv1.c" \
"$ROOT_DIR/src/loaders/ikv2.c" \
-o "$DEMO_EXE"
cc -std=c11 -Wall -Wextra -pedantic \
-DIKV_TESTING \
-I"$ROOT_DIR/include" \
"$SCRIPT_DIR/unit_test.c" \
"$ROOT_DIR/src/ikv.c" \
"$ROOT_DIR/src/loaders/ikv1.c" \
"$ROOT_DIR/src/loaders/ikv2.c" \
-lm \
-o "$TEST_EXE"
printf 'built "%s"\n' "$DEMO_EXE"
printf 'built "%s"\n' "$TEST_EXE"
if [ "${1-}" = "test" ]; then
exec "$TEST_EXE"
fi
if [ "${1-}" = "coverage" ]; then
rm -rf "$COV_DIR"
mkdir -p "$COV_DIR"
cc -std=c11 -Wall -Wextra -pedantic --coverage \
-DIKV_TESTING \
-I"$ROOT_DIR/include" \
"$SCRIPT_DIR/unit_test.c" \
"$ROOT_DIR/src/ikv.c" \
"$ROOT_DIR/src/loaders/ikv1.c" \
"$ROOT_DIR/src/loaders/ikv2.c" \
-lm \
-o "$COV_EXE"
(
cd "$COV_DIR"
./ikv_tests_cov
gcov -b -c ikv_tests_cov-ikv.gcno ikv_tests_cov-ikv1.gcno ikv_tests_cov-ikv2.gcno > gcov_report.txt
cat gcov_report.txt
)
fi