param([string]$Configuration='Release',[switch]$SkipTests) $ErrorActionPreference='Stop' $projectRoot=Split-Path (Split-Path $PSScriptRoot -Parent) -Parent $cmakeCommand=Get-Command cmake -ErrorAction SilentlyContinue if($cmakeCommand){$cmakeExecutable=$cmakeCommand.Source}else{$cmakeExecutable='C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe'} if(-not(Test-Path -LiteralPath $cmakeExecutable)){throw 'CMake not available'} $buildDirectory=Join-Path $projectRoot 'Builds\gameFramework\vs2022-x64' & $cmakeExecutable -S (Join-Path $projectRoot 'gameFramework') -B $buildDirectory -G 'Visual Studio 17 2022' -A x64 if($LASTEXITCODE -ne 0){throw 'Core configuration failed'} & $cmakeExecutable --build $buildDirectory --config $Configuration --parallel 2 if($LASTEXITCODE -ne 0){throw 'Core compilation failed'} if(-not $SkipTests){ $ctestExecutable=Join-Path (Split-Path $cmakeExecutable) 'ctest.exe' & $ctestExecutable --test-dir $buildDirectory -C $Configuration --output-on-failure if($LASTEXITCODE -ne 0){throw 'Core behavior tests failed'} }