@echo off setlocal REM ─── Validate argument ─────────────────────────────────────────────────────── if "%~1"=="force" set "build_option=--build=*" & goto :start if "%~1"=="missing" set "build_option=--build=missing" & goto :start echo Usage: %~n0 [force^|missing] echo force - Rebuild all packages from source echo missing - Only build packages not already cached exit /b 1 :start REM ─── Register remote (skip if already registered) ──────────────────────────── conan remote list | findstr /i "bigfootpackages" >nul 2>&1 if errorlevel 1 ( echo Adding Conan remote: bigfootpackages conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages if errorlevel 1 ( echo ERROR: Failed to add Conan remote. exit /b 1 ) ) else ( echo Conan remote 'bigfootpackages' already registered, skipping. ) REM ─── Shared flags ──────────────────────────────────────────────────────────── set "conan_common=--remote=bigfootpackages -pr:h=./ConanProfiles/msvc -pr:b=./ConanProfiles/Tools/msvc -of build" REM ─── Install dependencies for each build type ──────────────────────────────── for %%C in (Release RelWithDebInfo Debug) do ( echo. echo [%%C] Installing dependencies... conan install . %conan_common% %build_option% -s:h build_type=%%C if errorlevel 1 ( echo ERROR: conan install failed for build type %%C exit /b 1 ) echo [%%C] Done. ) echo. echo All build types installed successfully. REM ─── Activate build environment and run CMake ──────────────────────────────── echo. echo Activating build environment and configuring CMake... mkdir graphviz 2>nul powershell -ExecutionPolicy Bypass -Command "& 'build/build/generators/conanbuild.ps1'; cmake -S . -B build --toolchain build/build/generators/conan_toolchain.cmake --graphviz=graphviz/graph.dot; if ($LASTEXITCODE -ne 0) { Write-Host 'ERROR: CMake configuration failed'; exit 1 }" if errorlevel 1 ( echo ERROR: Build environment or CMake step failed. exit /b 1 ) echo. echo CMake configuration successful. endlocal