diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1 index 8dd3721a..8f29d121 100644 --- a/coin/provisioning/common/windows/helpers.ps1 +++ b/coin/provisioning/common/windows/helpers.ps1 @@ -306,3 +306,18 @@ function EnterVSDevShell { } return $true } + +function Invoke-MtCommand { + param( + [String] $vcVarsScript, + [String] $arch, + [String] $manifest, + [String] $executable + ) + $tempFile = [IO.Path]::GetTempFileName() + Add-Content -Path $tempFile -Value $manifest + $cmdLine = """$vcVarsScript"" $arch & mt.exe -manifest ""$tempFile"" -outputresource:""$executable"";1" + Write-Output Executing $cmdLine + & $Env:SystemRoot\system32\cmd.exe /c $cmdLine | Write-Output + Remove-Item $tempFile +} diff --git a/coin/provisioning/common/windows/ninja.ps1 b/coin/provisioning/common/windows/ninja.ps1 index 66511c46..d5557d82 100644 --- a/coin/provisioning/common/windows/ninja.ps1 +++ b/coin/provisioning/common/windows/ninja.ps1 @@ -11,3 +11,25 @@ Remove "$zip" Add-Path "C:\Utils\Ninja" Write-Output "Ninja = 1.10.2" >> ~/versions.txt + + +$manifest = @" + + + + + UTF-8 + true + + + +"@ + + +$vs2019 = [System.IO.File]::Exists("C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat") + +if($vs2019) { +Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe" +} else { +Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe" +}