AdvancedControllerRemoteCPP/build.sh

44 lines
1.3 KiB
Bash
Executable file

#!/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)"