Skip to content

Commit 2f4dce8

Browse files
authored
Enhance Windows SDK version detection in build.yml
Refactor SDK version selection logic and improve output.
1 parent 4ccd2b8 commit 2f4dce8

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

.github/workflows/build.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -289,27 +289,27 @@ jobs:
289289
throw "Windows Kits not found at: $kitsRoot"
290290
}
291291

292-
# Find installed SDK versions
293-
$versions = Get-ChildItem -Directory $kitsRoot | Select-Object -ExpandProperty Name
294-
Write-Host "Installed Windows SDK versions:"
295-
$versions | Sort-Object | ForEach-Object { Write-Host " - $_" }
292+
$all = Get-ChildItem -Directory $kitsRoot | Select-Object -ExpandProperty Name
296293

297-
# Pick the newest one
298-
$selected = ($versions | Sort-Object {[version]$_} | Select-Object -Last 1)
299-
if (-not $selected) { throw "Could not determine installed Windows SDK version." }
294+
Write-Host "Installed Windows SDK entries:"
295+
$all | Sort-Object | ForEach-Object { Write-Host " - $_" }
300296

297+
# Keep only semantic SDK version folders like 10.0.22621.0, skip 'wdf'
298+
$versions = $all | Where-Object { $_ -match '^\d+\.\d+\.\d+\.\d+$' }
299+
if (-not $versions -or $versions.Count -eq 0) {
300+
throw "No Windows SDK version folders found under: $kitsRoot"
301+
}
302+
303+
$selected = ($versions | Sort-Object {[version]$_} | Select-Object -Last 1).Trim()
301304
Write-Host "Selected Windows SDK version: $selected"
302305

303-
# CMake/VS tooling often expects a trailing backslash in WindowsSDKVersion
304-
"WindowsSDKVersion=$selected\" | Out-File -Append -Encoding utf8 $env:GITHUB_ENV
306+
if ([version]$selected -lt [version]"10.0.20348.0") {
307+
throw "Selected SDK $selected is < 10.0.20348.0 (OBS requirement)."
308+
}
305309

306-
# Also help CMake explicitly
310+
# Tooling typically expects trailing backslash
311+
"WindowsSDKVersion=$selected\" | Out-File -Append -Encoding utf8 $env:GITHUB_ENV
307312
"CMAKE_SYSTEM_VERSION=$selected" | Out-File -Append -Encoding utf8 $env:GITHUB_ENV
308-
309-
# Sanity check: must be >= 10.0.20348.0
310-
if ([version]($selected.TrimEnd("\")) -lt [version]"10.0.20348.0") {
311-
throw "Selected SDK $selected is still < 10.0.20348.0"
312-
}
313313

314314
- name: Install Ninja
315315
shell: pwsh

0 commit comments

Comments
 (0)