icinga2/tools/win32/load-vsenv.ps1
Julian Brost 4ede8e484b Update Windows build scripts for Visual Studio 2019
$env:CMAKE_GENERATOR_PLATFORM is only used in configure-dev.ps1 but now
is also required in configure.ps1 to allow the build pipeline to be
upgraded to Visual Studio 2019.

Additionally bump the versions in paths for Boost and OpenSSL.
2020-10-21 11:14:22 +02:00

59 lines
1.3 KiB
PowerShell

# why that env handling, see
# https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell#comment_44999171
Set-PsDebug -Trace 1
$SOURCE = Get-Location
if (Test-Path env:ICINGA2_BUILDPATH) {
$BUILD = $env:ICINGA2_BUILDPATH
} else {
$BUILD = "${SOURCE}\Build"
}
if (-not (Test-Path $BUILD)) {
mkdir $BUILD | Out-Null
}
if (Test-Path env:VS_INSTALL_PATH) {
$VSBASE = $env:VS_INSTALL_PATH
} else {
$VSBASE = "C:\Program Files (x86)\Microsoft Visual Studio\2019"
}
if (Test-Path env:BITS) {
$bits = $env:BITS
} else {
$bits = 64
}
# Execute vcvars in cmd and store env
$vcvars_locations = @(
"${VSBASE}\BuildTools\VC\Auxiliary\Build\vcvars${bits}.bat",
"${VSBASE}\Community\VC\Auxiliary\Build\vcvars${bits}.bat"
)
$vcvars = $null
foreach ($file in $vcvars_locations) {
if (Test-Path $file) {
$vcvars = $file
break
}
}
if ($vcvars -eq $null) {
throw "Could not get Build environment script at locations: ${vcvars_locations}"
}
cmd.exe /c "call `"${vcvars}`" && set > `"${BUILD}\vcvars.txt`""
if ($LastExitCode -ne 0) {
throw "Could not load Build environment from: ${vcvars}"
}
# Load environment for PowerShell
Get-Content "${BUILD}\vcvars.txt" | Foreach-Object {
if ($_ -match "^(VSCMD.*?)=(.*)$") {
Set-Content ("env:" + $matches[1]) $matches[2]
}
}