#!/usr/bin/env bash
set -euo pipefail

REGISTRY_ROOT="${FN_REGISTRY_ROOT:-$(cd "$(dirname "$0")/../../.." && pwd)}"
CPP_ROOT="$REGISTRY_ROOT/cpp"
BUILD_DIR="$CPP_ROOT/build/linux"
TARGET="${1:-}"

# Configure if needed
if [ ! -f "$BUILD_DIR/CMakeCache.txt" ]; then
    echo "[build_cpp_linux] Configuring cmake..."
    cmake -B "$BUILD_DIR" -S "$CPP_ROOT"
fi

# Build
if [ -n "$TARGET" ]; then
    echo "[build_cpp_linux] Building target: $TARGET"
    cmake --build "$BUILD_DIR" --target "$TARGET" -- -j"$(nproc)"
else
    echo "[build_cpp_linux] Building all targets..."
    cmake --build "$BUILD_DIR" -- -j"$(nproc)"
fi

echo "[build_cpp_linux] Done. Binaries in $BUILD_DIR"
