Merge topic 'ci-wix-download' into release-3.19

127864aa9c Merge branch 'backport-3.18-ci-wix-download' into ci-wix-download
8efbb0c95f ci: download WiX on Windows
5e5fecb7bc ci: speed up cmake and ninja downloads on Windows
6c34835a26 Merge branch 'backport-ninja-no-cleandead' into release-3.18
41ec2a4fac Merge branch 'FindPython-python2-soabi-suffix-fix' into release-3.18
035a0c497a Merge branch 'cuda_detect_vs_codegen' into release-3.18

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5725
diff --git a/.gitlab/ci/cmake.ps1 b/.gitlab/ci/cmake.ps1
index 9d7f317..e7b4de7 100755
--- a/.gitlab/ci/cmake.ps1
+++ b/.gitlab/ci/cmake.ps1
@@ -7,6 +7,7 @@
 
 $outdir = $pwd.Path
 $outdir = "$outdir\.gitlab"
+$ProgressPreference = 'SilentlyContinue'
 Invoke-WebRequest -Uri "https://github.com/Kitware/CMake/releases/download/v$version/$tarball" -OutFile "$outdir\$tarball"
 $hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256
 if ($hash.Hash -ne $sha256sum) {
diff --git a/.gitlab/ci/ninja.ps1 b/.gitlab/ci/ninja.ps1
index 4cc6bcb..4c5333a 100755
--- a/.gitlab/ci/ninja.ps1
+++ b/.gitlab/ci/ninja.ps1
@@ -7,6 +7,7 @@
 
 $outdir = $pwd.Path
 $outdir = "$outdir\.gitlab"
+$ProgressPreference = 'SilentlyContinue'
 Invoke-WebRequest -Uri "https://github.com/ninja-build/ninja/releases/download/v$version/$tarball" -OutFile "$outdir\$tarball"
 $hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256
 if ($hash.Hash -ne $sha256sum) {
diff --git a/.gitlab/ci/wix.ps1 b/.gitlab/ci/wix.ps1
new file mode 100755
index 0000000..a9322b6
--- /dev/null
+++ b/.gitlab/ci/wix.ps1
@@ -0,0 +1,18 @@
+$erroractionpreference = "stop"
+
+$release = "wix3112rtm"
+$sha256sum = "2C1888D5D1DBA377FC7FA14444CF556963747FF9A0A289A3599CF09DA03B9E2E"
+$filename = "wix311-binaries"
+$tarball = "$filename.zip"
+
+$outdir = $pwd.Path
+$outdir = "$outdir\.gitlab"
+$ProgressPreference = 'SilentlyContinue'
+Invoke-WebRequest -Uri "https://github.com/wixtoolset/wix3/releases/download/$release/$tarball" -OutFile "$outdir\$tarball"
+$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256
+if ($hash.Hash -ne $sha256sum) {
+    exit 1
+}
+
+Add-Type -AssemblyName System.IO.Compression.FileSystem
+[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir\wix\bin")
diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml
index 2e21fdf..1fff2bb 100644
--- a/.gitlab/os-windows.yml
+++ b/.gitlab/os-windows.yml
@@ -74,9 +74,12 @@
 ## Windows-specific scripts
 
 .before_script_windows: &before_script_windows
+    - Invoke-Expression -Command .gitlab/ci/wix.ps1
     - Invoke-Expression -Command .gitlab/ci/cmake.ps1
     - Invoke-Expression -Command .gitlab/ci/ninja.ps1
     - $pwdpath = $pwd.Path
+    - Set-Item -Force -Path "env:WIX" -Value "$pwdpath\.gitlab\wix"
+    - (& "$env:WIX\bin\light.exe" -help) | Select -First 1
     - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab;$pwdpath\.gitlab\cmake\bin;$env:PATH"
     - cmake --version
     - ninja --version