@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... if "%%C"=="Release" set "config_profile=release" if "%%C"=="RelWithDebInfo" set "config_profile=relwithdebinfo" if "%%C"=="Debug" set "config_profile=debug" 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% -pr:h=./ConanProfiles/Configurations/!config_profile! -pr:b=./ConanProfiles/Configurations/!config_profile! 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