| set -euo pipefail | |
| BUILD_DIR="build" | |
| BUILD_TYPE="${1:-Release}" | |
| echo "🔨 Building C++ project (${BUILD_TYPE})" | |
| echo "======================================" | |
| # Create build directory | |
| mkdir -p "${BUILD_DIR}" | |
| cd "${BUILD_DIR}" | |
| # Configure | |
| echo "Configuring with CMake..." | |
| cmake .. -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" -DBUILD_TESTS=ON | |
| # Build | |
| echo "Building..." | |
| cmake --build . --parallel "$(nproc 2>/dev/null || echo 4)" | |
| # Run tests if enabled | |
| if [ "${BUILD_TYPE}" != "Release" ] || [ "${RUN_TESTS:-0}" = "1" ]; then | |
| echo "Running tests..." | |
| ctest --output-on-failure | |
| fi | |
| echo "" | |
| echo "✅ Build complete!" | |
| echo " Executable: ${BUILD_DIR}/ai_dev_project_app" | |
| echo " Library: ${BUILD_DIR}/libai_dev_project.*" | |