@@ -235,44 +235,41 @@ jobs:
235
235
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"
236
236
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"
237
237
strategy :
238
- # TODO: add '3.14.0-win64-x64' CMake testing
239
238
matrix :
240
239
os : ['windows-2022', 'windows-2025']
241
240
build_type : [Debug, Release]
242
241
compiler : [{c: cl, cxx: cl}]
243
242
shared_library : ['ON', 'OFF']
244
243
level_zero_provider : ['ON']
245
244
cuda_provider : ['ON']
246
- cmake_ver : ['default']
247
245
include :
248
- # clang-cl works well with Ninja, Debug build
249
- # For VS generator it produces build errors not related to UMF
246
+ # extra job: Custom (old) CMake, clang-cl compiler
247
+ # Note: This CMake uses NMake generator as VS paths are probably messed up (by CMake?)
250
248
- os : ' windows-2025'
251
- build_type : Debug
249
+ build_type : Release
250
+ extra_build_options : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
252
251
compiler : {c: clang-cl, cxx: clang-cl}
253
- extra_build_options : ' -G Ninja'
254
252
shared_library : ' ON'
255
253
level_zero_provider : ' ON'
256
254
cuda_provider : ' ON'
257
- cmake_ver : ' default '
258
- # Custom CMake and umfd enabled
255
+ cmake_ver : ' 3.14.0-win64-x64 '
256
+ # extra job: Custom CMake, L0/CUDA providers disabled
259
257
- os : ' windows-2025'
260
258
build_type : Release
261
259
compiler : {c: cl, cxx: cl}
262
260
shared_library : ' ON'
263
- level_zero_provider : ' ON'
264
- cuda_provider : ' ON'
265
- umfd_lib : ' ON'
261
+ level_zero_provider : ' OFF'
262
+ cuda_provider : ' OFF'
266
263
cmake_ver : ' 3.28.0-windows-x86_64'
267
- # L0/CUDA providers disabled
268
- - os : ' windows-2025 '
264
+ # umfd enabled (this job will replace one from matrix)
265
+ - os : ' windows-2022 '
269
266
build_type : Release
270
267
compiler : {c: cl, cxx: cl}
271
268
shared_library : ' ON'
272
- level_zero_provider : ' OFF '
273
- cuda_provider : ' OFF '
274
- cmake_ver : ' default '
275
- name : Basic (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}}, level_zero_provider=${{matrix.level_zero_provider}}, cuda_provider=${{matrix.cuda_provider}}, cmake_ver=${{matrix.cmake_ver}})
269
+ level_zero_provider : ' ON '
270
+ cuda_provider : ' ON '
271
+ umfd_lib : ' ON '
272
+ name : Basic (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}}, level_zero_provider=${{matrix.level_zero_provider}}, cuda_provider=${{matrix.cuda_provider}}, cmake_ver=${{matrix.cmake_ver || 'default'}}, umfd=${{matrix.umfd_lib || 'OFF' }})
276
273
runs-on : ${{matrix.os}}
277
274
278
275
steps :
@@ -282,7 +279,7 @@ jobs:
282
279
fetch-depth : 0
283
280
284
281
- name : Install cmake (non-default version)
285
- if : matrix.cmake_ver != 'default'
282
+ if : ${{ matrix.cmake_ver != 'default' && matrix.cmake_ver != '' }}
286
283
run : |
287
284
$ErrorActionPreference = "Stop"
288
285
$cmakePath = "C:\Program Files\CMake"
@@ -300,6 +297,13 @@ jobs:
300
297
Start-Process msiexec.exe -ArgumentList "/i $cmakeInstaller /quiet /norestart" -Wait
301
298
cmake --version
302
299
300
+ # Ensure that the required environment is set
301
+ # Note: While this step is required for the clang-cl compiler, it can be executed for all jobs
302
+ - name : Setup MSVC dev command prompt
303
+ uses : TheMrMilchmann/setup-msvc-dev@fb19abb8a41b3cf0340f5d1be17d420309232be6 # v3.0.1
304
+ with :
305
+ arch : x64
306
+
303
307
- name : Initialize vcpkg
304
308
uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
305
309
with :
@@ -338,22 +342,24 @@ jobs:
338
342
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
339
343
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
340
344
-DUMF_TESTS_FAIL_ON_SKIP=ON
341
- -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib}}
345
+ -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF' }}
342
346
343
347
- name : Build UMF
344
348
run : cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
345
349
346
350
- name : Run tests
347
351
working-directory : ${{env.BUILD_DIR}}
348
- # For CMake versions < 3.22 we have to add the build directory to the PATH
349
- # manually
352
+ # For CMake versions < 3.22 we have to add the build directory to the PATH manually
353
+ # Extra paths without 'build_type' are set for NMake generator
350
354
run : |
351
355
$m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
352
356
if ($m) {
353
357
$major = [int]$m.groups[1].Value
354
358
$minor = [int]$m.groups[2].Value
355
359
if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
356
360
$env:Path = "${{env.BUILD_DIR}}/bin/${{matrix.build_type}};${{env.BUILD_DIR}}/src/proxy_lib/${{matrix.build_type}};$env:Path"
361
+ $env:Path = "${{env.BUILD_DIR}}/bin/;${{env.BUILD_DIR}}/src/proxy_lib/;$env:Path"
362
+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
357
363
}
358
364
}
359
365
ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
@@ -369,7 +375,7 @@ jobs:
369
375
--umf-version ${{env.UMF_VERSION}}
370
376
${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
371
377
${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
372
-
378
+
373
379
- name : check /DEPENDENTLOADFLAG in umf.dll
374
380
if : ${{matrix.shared_library == 'ON' && matrix.compiler.cxx == 'cl'}}
375
381
run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR}}/bin/${{matrix.build_type}}/umf.dll
@@ -458,61 +464,12 @@ jobs:
458
464
working-directory : ${{env.BUILD_DIR}}
459
465
run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
460
466
461
- windows-dynamic_mingw_hwloc :
462
- env :
463
- HWLOC_PACKAGE_NAME : hwloc-win64-build-2.10.0
464
- TBB_PACKAGE_NAME : oneapi-tbb-2021.12.0
465
- TBB_LIB_DIR : lib\intel64\vc14
466
- TBB_BIN_DIR : redist\intel64\vc14
467
-
468
- name : " Windows dynamic UMF + mingw libhwloc"
469
- strategy :
470
- matrix :
471
- build_type : [Release]
472
-
473
- runs-on : ' windows-latest'
474
-
475
- steps :
476
- - name : Checkout
477
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
478
- with :
479
- fetch-depth : 0
480
-
481
- - name : Get hwloc from official repo (mingw version)
482
- run : |
483
- Invoke-WebRequest -Uri https://download.open-mpi.org/release/hwloc/v2.10/${{env.HWLOC_PACKAGE_NAME}}.zip -OutFile ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -TimeoutSec 360
484
- Expand-Archive ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -DestinationPath ${{github.workspace}}
485
-
486
- - name : Get TBB from github
487
- run : |
488
- Invoke-WebRequest -Uri https://github.com/oneapi-src/oneTBB/releases/download/v2021.12.0/${{env.TBB_PACKAGE_NAME}}-win.zip -OutFile "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -TimeoutSec 360
489
- Expand-Archive "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -DestinationPath ${{github.workspace}}
490
-
491
- - name : Configure build
492
- run : >
493
- cmake
494
- -B ${{env.BUILD_DIR}}
495
- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
496
- -DCMAKE_PREFIX_PATH="${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}\${{env.TBB_LIB_DIR}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}\${{env.TBB_BIN_DIR}}"
497
- -DUMF_BUILD_SHARED_LIBRARY=ON
498
- -DUMF_BUILD_EXAMPLES=ON
499
- -DUMF_FORMAT_CODE_STYLE=OFF
500
- -DUMF_DEVELOPER_MODE=ON
501
- -DUMF_TESTS_FAIL_ON_SKIP=ON
502
- -DUMF_HWLOC_NAME=libhwloc
503
-
504
- - name : Build UMF
505
- run : cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
506
-
507
- - name : Run tests
508
- working-directory : ${{env.BUILD_DIR}}
509
- run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
510
-
511
467
macos-build :
512
468
strategy :
513
469
matrix :
514
- os : ['macos-13', 'macos-14']
515
470
include :
471
+ - os : macos-13
472
+ static_hwloc : ' OFF'
516
473
- os : macos-14
517
474
static_hwloc : ' ON'
518
475
env :
@@ -538,7 +495,7 @@ jobs:
538
495
run : brew install jemalloc tbb automake libtool
539
496
540
497
- name : Install hwloc
541
- if : ${{ ! matrix.static_hwloc }}
498
+ if : ${{ matrix.static_hwloc == 'OFF' }}
542
499
run : brew install hwloc
543
500
544
501
- name : Get UMF version
@@ -559,7 +516,6 @@ jobs:
559
516
-DUMF_BUILD_SHARED_LIBRARY=ON
560
517
-DUMF_TESTS_FAIL_ON_SKIP=ON
561
518
-DUMF_LINK_HWLOC_STATICALLY=${{matrix.static_hwloc}}
562
- ${{matrix.static_hwloc}}
563
519
564
520
- name : Build UMF
565
521
run : cmake --build ${{env.BUILD_DIR}} -j $(sysctl -n hw.logicalcpu)
0 commit comments