@@ -239,14 +239,16 @@ jobs:
239239 name : Windows
240240 env :
241241 VCPKG_PATH : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
242+ VCPKG_PATH_BIN : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows/bin"
242243 strategy :
243244 matrix :
244245 os : ['windows-2019', 'windows-2022']
245- build_type : [Debug, Release ]
246+ build_type : [Debug]
246247 compiler : [{c: cl, cxx: cl}]
247- shared_library : ['ON', 'OFF' ]
248+ shared_library : ['ON']
248249 level_zero_provider : ['ON']
249250 cuda_provider : ['ON']
251+ cmake_ver : ['default']
250252 include :
251253 - os : ' windows-2019'
252254 # clang build fails on Windows 2022
@@ -256,19 +258,22 @@ jobs:
256258 level_zero_provider : ' ON'
257259 cuda_provider : ' ON'
258260 toolset : " -T ClangCL"
261+ cmake_ver : ' 3.14.0-win64-x64'
259262 - os : ' windows-2022'
260263 build_type : Release
261264 compiler : {c: cl, cxx: cl}
262265 shared_library : ' ON'
263266 level_zero_provider : ' ON'
264267 cuda_provider : ' ON'
265268 umfd_lib : ' ON'
269+ cmake_ver : ' 3.28.0-windows-x86_64'
266270 - os : ' windows-2022'
267271 build_type : Release
268272 compiler : {c: cl, cxx: cl}
269273 shared_library : ' ON'
270274 level_zero_provider : ' OFF'
271275 cuda_provider : ' OFF'
276+ cmake_ver : ' default'
272277
273278 runs-on : ${{matrix.os}}
274279
@@ -278,6 +283,25 @@ jobs:
278283 with :
279284 fetch-depth : 0
280285
286+ - name : Install cmake (non-default version)
287+ if : matrix.cmake_ver != 'default'
288+ run : |
289+ $ErrorActionPreference = "Stop"
290+ $cmakePath = "C:\Program Files\CMake"
291+ if (Test-Path -Path $cmakePath) {
292+ Write-Host "Removing existing CMake installation..."
293+ Remove-Item -Recurse -Force -Path $cmakePath
294+ }
295+ $cmakeInstaller = "cmake-${{matrix.cmake_ver}}.msi"
296+ $cmakeInstallerParts = $cmakeInstaller -split '-|\.'
297+ $cmakeMajorMinorPatch = "$($cmakeInstallerParts[1]).$($cmakeInstallerParts[2]).$($cmakeInstallerParts[3])"
298+ $cmakeUrl = "https://github.com/Kitware/CMake/releases/download/v$cmakeMajorMinorPatch/$cmakeInstaller"
299+ Write-Host "Downloading CMake version ${{matrix.cmake_ver}}..."
300+ Invoke-WebRequest -Uri $cmakeUrl -OutFile $cmakeInstaller -TimeoutSec 360
301+ Write-Host "Installing CMake version ${{matrix.cmake_ver}}..."
302+ Start-Process msiexec.exe -ArgumentList "/i $cmakeInstaller /quiet /norestart" -Wait
303+ cmake --version
304+
281305 - name : Initialize vcpkg
282306 uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
283307 with :
@@ -286,7 +310,10 @@ jobs:
286310 vcpkgJsonGlob : ' **/vcpkg.json'
287311
288312 - name : Install dependencies
289- run : vcpkg install --triplet x64-windows
313+ run : |
314+ vcpkg install --triplet x64-windows
315+ $env:Path = "${{env.VCPKG_PATH_BIN}};$env:Path"
316+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
290317 shell : pwsh # Specifies PowerShell as the shell for running the script.
291318
292319 - name : Get UMF version
@@ -318,10 +345,23 @@ jobs:
318345
319346 - name : Run tests
320347 working-directory : ${{env.BUILD_DIR}}
321- run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
348+ # For CMake versions < 3.22 we have to add the build directory to the PATH
349+ # manually
350+ run : |
351+ $m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
352+ if ($m) {
353+ $major = [int]$m.groups[1].Value
354+ $minor = [int]$m.groups[2].Value
355+ if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
356+ $env:Path = "${{env.BUILD_DIR}}/bin/${{matrix.build_type}};${{env.BUILD_DIR}}/src/proxy_lib/${{matrix.build_type}};$env:Path"
357+ }
358+ }
359+ ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
360+ shell : pwsh
322361
323362 - name : Test UMF installation and uninstallation
324- # The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
363+ # The '--shared-library' parameter is added to the installation test when
364+ # the UMF is built as a shared library
325365 run : >
326366 python3 ${{github.workspace}}/test/test_installation.py
327367 --build-dir ${{env.BUILD_DIR}}
0 commit comments