@@ -232,12 +232,15 @@ jobs:
232
232
233
233
windows-build :
234
234
env :
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
- 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"
235
+ BUILD_DEBUG_DIR : " ${{github.workspace}}/debug/build"
236
+ INSTL_DEBUG_DIR : " ${{github.workspace}}/debug/install-dir"
237
+ BUILD_RELEASE_DIR : " ${{github.workspace}}/release/build"
238
+ INSTL_RELEASE_DIR : " ${{github.workspace}}/release/install-dir"
239
+ VCPKG_PATH : " ${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows"
240
+ VCPKG_PATH_BIN : " ${{github.workspace}}/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows/bin"
237
241
strategy :
238
242
matrix :
239
243
os : ['windows-2022', 'windows-2025']
240
- build_type : [Debug, Release]
241
244
compiler : [{c: cl, cxx: cl}]
242
245
shared_library : ['ON', 'OFF']
243
246
level_zero_provider : ['ON']
@@ -246,30 +249,34 @@ jobs:
246
249
# extra job: Custom (old) CMake, clang-cl compiler
247
250
# Note: This CMake uses NMake generator as VS paths are probably messed up (by CMake?)
248
251
- os : ' windows-2025'
249
- build_type : Release
250
- extra_build_options : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
252
+ extra_release_build_type : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
251
253
compiler : {c: clang-cl, cxx: clang-cl}
252
254
shared_library : ' ON'
253
255
level_zero_provider : ' ON'
254
256
cuda_provider : ' ON'
255
257
cmake_ver : ' 3.14.0-win64-x64'
256
258
# extra job: Custom CMake, L0/CUDA providers disabled
257
259
- os : ' windows-2025'
258
- build_type : Release
259
260
compiler : {c: cl, cxx: cl}
260
261
shared_library : ' ON'
261
262
level_zero_provider : ' OFF'
262
263
cuda_provider : ' OFF'
263
264
cmake_ver : ' 3.28.0-windows-x86_64'
264
265
# umfd enabled (this job will replace one from matrix)
265
266
- os : ' windows-2022'
266
- build_type : Release
267
267
compiler : {c: cl, cxx: cl}
268
268
shared_library : ' ON'
269
269
level_zero_provider : ' ON'
270
270
cuda_provider : ' ON'
271
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'}})
272
+ name : Basic (${{matrix.os}},
273
+ compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}},
274
+ shared_library=${{matrix.shared_library}},
275
+ level_zero_provider=${{matrix.level_zero_provider}},
276
+ cuda_provider=${{matrix.cuda_provider}},
277
+ cmake_ver=${{matrix.cmake_ver || 'default'}},
278
+ umfd=${{matrix.umfd_lib || 'OFF'}})
279
+ extra=${{matrix.extra_release_build_type || ''}}
273
280
runs-on : ${{matrix.os}}
274
281
275
282
steps :
@@ -308,7 +315,7 @@ jobs:
308
315
uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
309
316
with :
310
317
vcpkgGitCommitId : ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
311
- vcpkgDirectory : ${{env.BUILD_DIR }}/vcpkg
318
+ vcpkgDirectory : ${{github.workspace }}/vcpkg
312
319
vcpkgJsonGlob : ' **/vcpkg.json'
313
320
314
321
# Install the dependencies and add the bin folders to the PATH for older
@@ -326,12 +333,11 @@ jobs:
326
333
echo "UMF_VERSION=$version" >> $env:GITHUB_ENV
327
334
shell : pwsh
328
335
329
- - name : Configure build
336
+ - name : Configure build (Debug)
330
337
run : >
331
338
cmake
332
- -B ${{env.BUILD_DIR}}
333
- ${{matrix.extra_build_options || ''}}
334
- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
339
+ -B ${{env.BUILD_DEBUG_DIR}}
340
+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DEBUG_DIR}}"
335
341
-DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
336
342
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
337
343
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
@@ -344,11 +350,11 @@ jobs:
344
350
-DUMF_TESTS_FAIL_ON_SKIP=ON
345
351
-DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
346
352
347
- - name : Build UMF
348
- run : cmake --build ${{env.BUILD_DIR }} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
353
+ - name : Build UMF (Debug)
354
+ run : cmake --build ${{env.BUILD_DEBUG_DIR }} --config Debug -j $Env:NUMBER_OF_PROCESSORS
349
355
350
- - name : Run tests
351
- working-directory : ${{env.BUILD_DIR }}
356
+ - name : Run tests (Debug)
357
+ working-directory : ${{env.BUILD_DEBUG_DIR }}
352
358
# For CMake versions < 3.22 we have to add the build directory to the PATH manually
353
359
# Extra paths without 'build_type' are set for NMake generator
354
360
run : |
@@ -357,33 +363,83 @@ jobs:
357
363
$major = [int]$m.groups[1].Value
358
364
$minor = [int]$m.groups[2].Value
359
365
if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
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"
366
+ $env:Path = "${{env.BUILD_DEBUG_DIR }}/bin/Debug ;${{env.BUILD_DEBUG_DIR }}/src/proxy_lib/Debug ;$env:Path"
367
+ $env:Path = "${{env.BUILD_DEBUG_DIR }}/bin/;${{env.BUILD_DEBUG_DIR }}/src/proxy_lib/;$env:Path"
362
368
echo "PATH=$env:Path" >> $env:GITHUB_ENV
363
369
}
364
370
}
365
- ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
371
+ ctest -C Debug --output-on-failure --test-dir test
366
372
shell : pwsh
367
373
368
- - name : Test UMF installation and uninstallation
374
+ - name : Test UMF installation and uninstallation (Debug)
369
375
run : >
370
376
python3 ${{github.workspace}}/test/test_installation.py
371
- --build-dir ${{env.BUILD_DIR }}
372
- --install-dir ${{env.INSTL_DIR }}
373
- --build-type ${{matrix.build_type}}
377
+ --build-dir ${{env.BUILD_DEBUG_DIR }}
378
+ --install-dir ${{env.INSTL_DEBUG_DIR }}
379
+ --build-type Debug
374
380
${{matrix.shared_library == 'ON' && '--proxy' || '' }}
375
381
--umf-version ${{env.UMF_VERSION}}
376
382
${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
377
383
${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
378
384
379
- - name : check /DEPENDENTLOADFLAG in umf.dll
385
+ - name : Configure build (Release)
386
+ run : >
387
+ cmake
388
+ -B ${{env.BUILD_RELEASE_DIR}}
389
+ ${{matrix.extra_release_build_type || ''}}
390
+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_RELEASE_DIR}}"
391
+ -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
392
+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
393
+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
394
+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
395
+ -DUMF_FORMAT_CODE_STYLE=OFF
396
+ -DUMF_DEVELOPER_MODE=ON
397
+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
398
+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
399
+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
400
+ -DUMF_TESTS_FAIL_ON_SKIP=ON
401
+ -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
402
+
403
+ - name : Build UMF (Release)
404
+ run : cmake --build ${{env.BUILD_RELEASE_DIR}} --config Release -j $Env:NUMBER_OF_PROCESSORS
405
+
406
+ - name : Run tests (Release)
407
+ working-directory : ${{env.BUILD_RELEASE_DIR}}
408
+ # For CMake versions < 3.22 we have to add the build directory to the PATH manually
409
+ # Extra paths without 'build_type' are set for NMake generator
410
+ run : |
411
+ $m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
412
+ if ($m) {
413
+ $major = [int]$m.groups[1].Value
414
+ $minor = [int]$m.groups[2].Value
415
+ if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
416
+ $env:Path = "${{env.BUILD_RELEASE_DIR}}/bin/Release;${{env.BUILD_RELEASE_DIR}}/src/proxy_lib/Release;$env:Path"
417
+ $env:Path = "${{env.BUILD_RELEASE_DIR}}/bin/;${{env.BUILD_RELEASE_DIR}}/src/proxy_lib/;$env:Path"
418
+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
419
+ }
420
+ }
421
+ ctest -C Release --output-on-failure --test-dir test
422
+ shell : pwsh
423
+
424
+ - name : Test UMF installation and uninstallation (Release)
425
+ run : >
426
+ python3 ${{github.workspace}}/test/test_installation.py
427
+ --build-dir ${{env.BUILD_RELEASE_DIR}}
428
+ --install-dir ${{env.INSTL_RELEASE_DIR}}
429
+ --build-type Release
430
+ ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
431
+ --umf-version ${{env.UMF_VERSION}}
432
+ ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
433
+ ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
434
+
435
+ - name : check /DEPENDENTLOADFLAG in umf.dll (Release)
380
436
if : ${{matrix.shared_library == 'ON' && matrix.compiler.cxx == 'cl'}}
381
- run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR }}/bin/${{matrix.build_type}} /umf.dll
437
+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/bin/Release /umf.dll
382
438
shell : pwsh
383
439
384
- - name : check /DEPENDENTLOADFLAG in umf_proxy.dll
440
+ - name : check /DEPENDENTLOADFLAG in umf_proxy.dll (Release)
385
441
if : ${{matrix.shared_library == 'ON' && matrix.compiler.cxx == 'cl'}}
386
- run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR }}/src/proxy_lib/${{matrix.build_type}} /umf_proxy.dll
442
+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/src/proxy_lib/Release /umf_proxy.dll
387
443
shell : pwsh
388
444
389
445
windows-dynamic_build_hwloc :
0 commit comments