@@ -215,7 +215,14 @@ jobs:
215
215
216
216
strategy :
217
217
fail-fast : false
218
+
219
+ # Please read notes in similar place in Flow's main.yml regarding the matrix's setup, especially
220
+ # the bulk of it that discusses how the C++ standard setting (17, 20, etc.) is handled.
221
+ # We omit that large comment here and related comments inline inside the `matrix`. Same deal as for Flow.
218
222
matrix :
223
+ cxx-std :
224
+ - id : cxx17
225
+ - id : cxx20
219
226
compiler :
220
227
- id : gcc-9
221
228
name : gcc
@@ -451,11 +458,38 @@ jobs:
451
458
build-test-cfg : { id: relwithdebinfo-tsan }
452
459
- compiler : { id: clang-13 }
453
460
build-test-cfg : { id: relwithdebinfo-tsan }
461
+ # The rest of these deal with C++20; again please see Flow's main.yml commentary.
462
+ # TODO: I am sure there's an overarching TODO somewhere around here to the same effect but... to
463
+ # reiterate... it's unpleasant so much is copy-pasted from one .yml to the other, and even accepting
464
+ # that it is odd that for some items the real comment is in A, while B says see A; while for others
465
+ # it is the opposite. The info is there, and it's not redundant (only the code is), but still.
466
+ - cxx-std : { id: cxx20 }
467
+ compiler : { id: gcc-9 }
468
+ - cxx-std : { id: cxx20 }
469
+ compiler : { id: gcc-10 }
470
+ - cxx-std : { id: cxx20 }
471
+ compiler : { id: gcc-11 }
472
+ - cxx-std : { id: cxx20 }
473
+ compiler : { id: clang-13 }
474
+ - cxx-std : { id: cxx20 }
475
+ compiler : { id: clang-15 }
476
+ - cxx-std : { id: cxx20 }
477
+ compiler : { id: clang-16 }
478
+ - cxx-std : { id: cxx20 }
479
+ build-test-cfg : { id: release }
480
+ - cxx-std : { id: cxx20 }
481
+ build-test-cfg : { id: minsizerel }
482
+ - cxx-std : { id: cxx20 }
483
+ build-test-cfg : { id: relwithdebinfo-asan }
484
+ - cxx-std : { id: cxx20 }
485
+ build-test-cfg : { id: relwithdebinfo-ubsan }
486
+ - cxx-std : { id: cxx20 }
487
+ build-test-cfg : { id: relwithdebinfo-tsan }
454
488
455
489
# Not using ubuntu-latest, so as to avoid surprises with OS upgrades and such.
456
490
runs-on : ubuntu-22.04
457
491
458
- name : ${{ matrix.compiler.id }}-${{ matrix.build-test-cfg.id }}
492
+ name : ${{ matrix.compiler.id }}-${{ matrix.build-test-cfg.id }}-${{ matrix.cxx-std.id }}
459
493
460
494
env :
461
495
build-dir : ${{ github.workspace }}/build/${{ matrix.build-test-cfg.conan-profile-build-type }}
@@ -652,7 +686,7 @@ jobs:
652
686
[settings]
653
687
compiler = ${{ matrix.compiler.name }}
654
688
compiler.version = ${{ matrix.compiler.version }}
655
- compiler.cppstd = 17
689
+ compiler.cppstd = ${{ ((matrix.cxx-std.id == 'cxx20') && '20') || '17' }}
656
690
# TODO: Consider testing with LLVM-libc++ also (with clang anyway).
657
691
compiler.libcxx = libstdc++11
658
692
arch = x86_64
@@ -672,10 +706,16 @@ jobs:
672
706
${{ matrix.build-test-cfg.conan-profile-custom-buildenv }}
673
707
674
708
[options]
709
+ # TODO: Are the next 2 lines needed, since we are building via `ipc` conanfile.py?
710
+ # I (ygoldfel) am admittedly Conan-ignorant.
675
711
flow:doc = False
676
712
flow:build = True
677
713
ipc:doc = False
678
714
ipc:build = True
715
+ # `0` here as of this writing would effectively mean `17` too. Specifying `17` explicitly has the same
716
+ # effect in the end but goes down a slightly different code-path in FlowLikeCodeGenerate.cmake. It's not
717
+ # a huge deal... but it's a little nice to cover more paths, so let's do the `0` path when applicable.
718
+ ipc:build_cxx_std = ${{ ((matrix.cxx-std.id == 'cxx20') && '20') || '0' }}
679
719
EOF
680
720
# (Oddly enough `no-lto: True` and `...: False` do still evaluate as `true` and `false` respectively.
681
721
# Hence why this compares against `false` and not `False`....)
@@ -1244,7 +1284,7 @@ jobs:
1244
1284
always()
1245
1285
uses : actions/upload-artifact@v4
1246
1286
with :
1247
- name : ipc-test-logs-${{ matrix.compiler.id }}-${{ matrix.build-test-cfg.id }}
1287
+ name : ipc-test-logs-${{ matrix.compiler.id }}-${{ matrix.build-test-cfg.id }}-${{ matrix.cxx-std.id }}
1248
1288
path : ${{ env.install-dir }}/bin/logs.tgz
1249
1289
1250
1290
# TODO: Look into the topic of debuggability in case of a crash. Is a core generated? Is it saved?
0 commit comments