@echo off setlocal enabledelayedexpansion 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_base=--remote=bigfootpackages -pr:h=./ConanProfiles/host/msvc -pr:b=./ConanProfiles/build/msvc -o bigfoot/*:build_tests=True -o bigfoot/*:build_benchmarks=True -o bigfoot/*:tracy=True -o bigfoot/*:vulkan=True" REM ─── Install dependencies for each build type/variant ──────────────────────── for %%C in (Release RelWithDebInfo Debug) do ( echo. echo [%%C] Installing dependencies... for %%V in (toolmode game) do ( set "toolmode_val=False" if "%%V"=="toolmode" set "toolmode_val=True" conan install . !conan_common_base! -of build-windows-%%V -o bigfoot/*:toolmode=!toolmode_val! %build_option% -s:h build_type=%%C if errorlevel 1 ( echo ERROR: conan install failed for build type %%C ^(%%V^) 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... for %%V in (toolmode game) do ( mkdir graphviz-windows-%%V 2>nul powershell -ExecutionPolicy Bypass -Command "& 'build-windows-%%V/build/generators/conanbuild.ps1'; cmake -S . -B build-windows-%%V --toolchain build-windows-%%V/build/generators/conan_toolchain.cmake --graphviz=graphviz-windows-%%V/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 for %%V. exit /b 1 ) ) echo. echo CMake configuration successful. endlocal