Add CMake vcpkg UI validation target

This commit is contained in:
2026-06-05 13:04:34 +02:00
parent 3e5340b696
commit e731c06330
6 changed files with 78 additions and 9 deletions

View File

@@ -94,11 +94,50 @@ function Expand-ArgumentList {
return $expanded
}
function Get-VcpkgRoot {
$candidates = @()
if ($env:VCPKG_ROOT) {
$candidates += $env:VCPKG_ROOT
}
$programFiles = @($env:ProgramFiles, ${env:ProgramFiles(x86)}) | Where-Object { $_ }
$vsYears = @("2026", "2022")
$vsEditions = @("Community", "Professional", "Enterprise", "BuildTools", "Preview")
foreach ($root in $programFiles) {
foreach ($year in $vsYears) {
foreach ($edition in $vsEditions) {
$candidates += (Join-Path $root "Microsoft Visual Studio\$year\$edition\VC\vcpkg")
}
}
}
foreach ($candidate in $candidates) {
if ($candidate -and (Test-Path -LiteralPath (Join-Path $candidate "vcpkg.exe") -PathType Leaf)) {
return (Resolve-Path -LiteralPath $candidate).Path
}
}
throw "VCPKG_ROOT was not set and no Visual Studio bundled vcpkg root was found."
}
function Set-VcpkgRootEnvironment {
$vcpkgRoot = Get-VcpkgRoot
$env:VCPKG_ROOT = $vcpkgRoot
return [ordered]@{
vcpkgRoot = $vcpkgRoot
vcpkgCommand = Join-Path $vcpkgRoot "vcpkg.exe"
}
}
$Presets = @(Expand-ArgumentList -Values $Presets)
$Targets = @(Expand-ArgumentList -Values $Targets)
$cmakeCommand = "cmake"
$androidToolchain = $null
$vcpkgToolchain = $null
if ($Presets | Where-Object { $_ -like "*vcpkg*" }) {
$vcpkgToolchain = Set-VcpkgRootEnvironment
}
if ($Presets | Where-Object { $_ -like "android-*" }) {
. "$PSScriptRoot\android-sdk-env.ps1"
$androidToolchain = Set-AndroidSdkToolchainEnvironment
@@ -152,6 +191,7 @@ $elapsed = [int]((Get-Date) - $started).TotalMilliseconds
exitCode = $overallExitCode
elapsedMs = $elapsed
androidToolchain = $androidToolchain
vcpkgToolchain = $vcpkgToolchain
results = $results
} | ConvertTo-Json -Compress -Depth 6

View File

@@ -33,6 +33,7 @@ REQUIRED_ANDROID_PRESETS = [
EXPECTED_CMAKE_PLATFORM_TARGETS = [
"panopainter_platform_build_headless",
"panopainter_platform_build_android_assets",
"panopainter_platform_build_vcpkg_ui_core",
"panopainter_platform_build_apple_remote",
]