Browse Source

Merge topic 'ci-vcvarsall-fix' into release-3.30

c1ddff67f2 ci: use JSON to transfer environment variables

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9963
Brad King 1 year ago
parent
commit
b7d5e6848d
1 changed files with 4 additions and 6 deletions
  1. 4 6
      .gitlab/ci/vcvarsall.ps1

+ 4 - 6
.gitlab/ci/vcvarsall.ps1

@@ -1,9 +1,7 @@
 $erroractionpreference = "stop"
 
-cmd /c "`"$env:VCVARSALL`" $env:VCVARSPLATFORM -vcvars_ver=$env:VCVARSVERSION & set" |
-foreach {
-    if ($_ -match "=") {
-        $v = $_.split("=")
-        [Environment]::SetEnvironmentVariable($v[0], $v[1])
-    }
+$all_env = cmd /c "`"$env:VCVARSALL`" $env:VCVARSPLATFORM -vcvars_ver=$env:VCVARSVERSION >NUL & powershell -Command `"Get-ChildItem env: | Select-Object -Property Key,Value | ConvertTo-Json`"" | ConvertFrom-Json
+
+foreach ($envvar in $all_env) {
+    [Environment]::SetEnvironmentVariable($envvar.Key, $envvar.Value)
 }