#!/usr/bin/env bash # Build and run the Forts Clone inside a podman container. # Usage: ./scripts/build.sh [--shell] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" IMAGE_NAME="forts-clone-dev" cd "$PROJECT_DIR" # Build container image (cached) echo "==> Building container image..." podman build -t "$IMAGE_NAME" . if [ "${1:-}" = "--shell" ]; then echo "==> Starting shell in container..." exec podman run -it --rm \ -v "$PROJECT_DIR":/src:Z \ --userns=keep-id \ "$IMAGE_NAME" \ bash else echo "==> Configuring and building..." podman run -it --rm \ -v "$PROJECT_DIR":/src:Z \ --userns=keep-id \ "$IMAGE_NAME" \ bash -c " meson setup builddir \ --buildtype=debugoptimized \ -Dwarning_level=3 \ -Dcpp_std=c++20 \ --wipe meson compile -C builddir -j$(nproc) " echo echo "==> Build complete. Run with: ./builddir/forts-clone" fi