@@ -43,30 +43,66 @@ if ($missing.count -ge 1) {
4343$project_root = (Get-Item - Path " .\" - Verbose).FullName -replace " \\" , " /"
4444$vcpkg_root = Install-Vcpkg " ${project_root} " " "
4545$binary_dir = " cmake-out/${BuildName} "
46- # Install all dependencies from the vcpkg.json manifest file.
47- # This mirrors the behavior of our GHA builds.
46+
47+ Write-Host - ForegroundColor Cyan " ----------------------------------------------------------------"
48+ Write-Host - ForegroundColor Cyan " Dumping environment and config before vcpkg install..."
49+ Write-Host - ForegroundColor Cyan " ----------------------------------------------------------------"
50+
51+ Write-Host - ForegroundColor Yellow " ========= Dumping relevant environment variables ========="
52+ Get-ChildItem env: | Where-Object { $_.Name -like " VCPKG_*" -or $_.Name -like " CMAKE_*" } | Format-List
53+ Write-Host - ForegroundColor Yellow " =========================================================="
54+
55+ $triplet_file = " ${project_root} /ci/kokoro/windows/triplets/x64-windows-static.cmake"
56+ Write-Host - ForegroundColor Yellow " ========= Dumping triplet file ($triplet_file ) ========="
57+ if (Test-Path $triplet_file ) {
58+ Get-Content $triplet_file
59+ } else {
60+ Write-Host - ForegroundColor Red " Triplet file not found at $triplet_file "
61+ }
62+ Write-Host - ForegroundColor Yellow " =========================================================="
63+
64+ Write-Host - ForegroundColor Cyan " ----------------------------------------------------------------"
65+ Write-Host - ForegroundColor Cyan " Unsetting toxic VCPKG_ROOT and VCPKG_OVERLAY_TRIPLETS env vars..."
66+ Write-Host - ForegroundColor Cyan " ----------------------------------------------------------------"
67+ # The VCPKG_ROOT env var is mismatched with the vcpkg we are running,
68+ # which causes vcpkg to ignore other env vars.
69+ # We'll unset them both and pass the overlay-triplets path manually.
70+ Remove-Item env:VCPKG_ROOT - ErrorAction SilentlyContinue
71+ Remove-Item env:VCPKG_OVERLAY_TRIPLETS - ErrorAction SilentlyContinue
72+
73+ # Define the correct path to our custom triplets, which your debug log confirmed
74+ $overlay_triplets_path = " ${project_root} /ci/kokoro/windows/triplets"
75+
4876Write-Host - ForegroundColor Yellow " Attempting vcpkg install..."
49- & " ${vcpkg_root} /vcpkg.exe" install -- triplet " ${env: VCPKG_TRIPLET} "
77+ Write-Host - ForegroundColor Yellow " Explicitly setting --overlay-triplets=$overlay_triplets_path "
78+
79+ # Install all dependencies, now passing the overlay path on the command line
80+ & " ${vcpkg_root} /vcpkg.exe" install -- triplet " ${env: VCPKG_TRIPLET} " -- overlay- triplets= " ${overlay_triplets_path} "
5081
5182# Manually check the exit code. vcpkg might not be throwing a terminating error.
5283if ($LastExitCode -ne 0 ) {
5384 Write-Host - ForegroundColor Red " ----------------------------------------------------------------"
5485 Write-Host - ForegroundColor Red " vcpkg install FAILED with exit code $LastExitCode ."
55- Write-Host - ForegroundColor Red " Dumping vcpkg buildtree logs for crc32c ..."
86+ Write-Host - ForegroundColor Red " Dumping vcpkg buildtree logs for known failing packages ..."
5687 Write-Host - ForegroundColor Red " ----------------------------------------------------------------"
5788
58- # Define the log files based on the error message
59- $log1 = " ${vcpkg_root} /buildtrees/crc32c/config-x64-windows-static-out.log"
60- $log2 = " ${vcpkg_root} /buildtrees/crc32c/config-x64-windows-static-dbg-CMakeCache.txt.log"
61- $log3 = " ${vcpkg_root} /buildtrees/crc32c/config-x64-windows-static-rel-CMakeCache.txt.log"
62-
63- foreach ($logFile in @ ($log1 , $log2 , $log3 )) {
64- if (Test-Path $logFile ) {
65- Write-Host - ForegroundColor Red " ========= Contents of $logFile ========="
66- Get-Content $logFile
67- Write-Host - ForegroundColor Red " ========= End of $logFile ========="
68- } else {
69- Write-Host - ForegroundColor Yellow " Log file not found, skipping: $logFile "
89+ # We'll check logs for *all* known problematic packages
90+ $problem_packages = @ (" crc32c" , " yaml-cpp" )
91+
92+ foreach ($pkg in $problem_packages ) {
93+ Write-Host - ForegroundColor Magenta " --- Checking logs for $pkg ---"
94+ $log1 = " ${vcpkg_root} /buildtrees/${pkg} /config-x64-windows-static-out.log"
95+ $log2 = " ${vcpkg_root} /buildtrees/${pkg} /config-x64-windows-static-dbg-CMakeCache.txt.log"
96+ $log3 = " ${vcpkg_root} /buildtrees/${pkg} /config-x64-windows-static-rel-CMakeCache.txt.log"
97+
98+ foreach ($logFile in @ ($log1 , $log2 , $log3 )) {
99+ if (Test-Path $logFile ) {
100+ Write-Host - ForegroundColor Red " ========= Contents of $logFile ========="
101+ Get-Content $logFile
102+ Write-Host - ForegroundColor Red " ========= End of $logFile ========="
103+ } else {
104+ Write-Host - ForegroundColor Yellow " Log file not found, skipping: $logFile "
105+ }
70106 }
71107 }
72108
0 commit comments