#!/usr/bin/env bash # AdvancedControllerRemoteCPP - build script for Linux set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BUILD_DIR="${SCRIPT_DIR}/build" BIN_DIR="${SCRIPT_DIR}/bin" echo "=== Building AdvancedControllerRemoteCPP for Linux ===" # Check for compiler and cmake if ! command -v cmake >/dev/null 2>&1; then echo "Error: cmake is required but not installed." >&2 exit 1 fi if ! command -v g++ >/dev/null 2>&1 && ! command -v clang++ >/dev/null 2>&1; then echo "Error: C++ compiler (g++ or clang++) is required but not installed." >&2 exit 1 fi # Create directories mkdir -p "${BUILD_DIR}" mkdir -p "${BIN_DIR}" # Configure CMake cmake -S "${SCRIPT_DIR}" -B "${BUILD_DIR}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_BINDIR=. # Compile cmake --build "${BUILD_DIR}" -j"$(nproc 2>/dev/null || echo 2)" # Install binaries into bin/ cmake --install "${BUILD_DIR}" --prefix "${BIN_DIR}" # Ensure executable permissions chmod +x "${BIN_DIR}/AdvancedControllerPanel" "${BIN_DIR}/remote_test" 2>/dev/null || true echo "" echo "=== Build completed successfully ===" echo "Binaries available in: ${BIN_DIR}" echo " - ${BIN_DIR}/AdvancedControllerPanel (Virtual Front Panel, start with ./run.sh)" echo " - ${BIN_DIR}/remote_test (CLI diagnostic tool)"