#!/usr/bin/env bash set -e DIR="$(cd "$(dirname "$0")" && pwd)" BUILD_DIR="$DIR/build" JOBS=${JOBS:-$(nproc)} CLEAN=0 REBUILD=0 usage() { cat << 'EOF' Usage: ./build.sh [options] Options: -c, --clean Clean build from scratch -r, --rebuild Reconfigure cmake (delete CMakeCache) then rebuild -j N Number of parallel jobs (default: nproc) -h, --help Show this help EOF } while [ $# -gt 0 ]; do case "$1" in -c|--clean) CLEAN=1 ;; -r|--rebuild) REBUILD=1 ;; -j) JOBS="$2"; shift ;; -h|--help) usage; exit 0 ;; *) echo "Unknown option: $1"; usage; exit 1 ;; esac shift done if [ "$CLEAN" -eq 1 ]; then echo "Cleaning $BUILD_DIR ..." rm -rf "$BUILD_DIR" fi if [ "$REBUILD" -eq 1 ]; then rm -rf "$BUILD_DIR" fi if [ ! -f "$BUILD_DIR/Makefile" ]; then echo "Configuring with cmake ..." cmake -B "$BUILD_DIR" "$DIR" fi echo "Building with $JOBS jobs ..." cmake --build "$BUILD_DIR" -j "$JOBS" echo "Build complete: $BUILD_DIR/rtsp_multi_view"