|
4 | 4 | jobs: |
5 | 5 | bvt-compatibility: |
6 | 6 | runs-on: ubuntu-24.04 |
| 7 | + strategy: |
| 8 | + fail-fast: false |
| 9 | + matrix: |
| 10 | + compiler: |
| 11 | + - {compiler: gcc, version: 13, modules: false} |
| 12 | + - {compiler: gcc, version: 14, modules: true} |
| 13 | + - {compiler: clang, version: 16, modules: false} |
| 14 | + - {compiler: clang, version: 17, modules: false} |
| 15 | + - {compiler: clang, version: 18, modules: false} |
| 16 | + - {compiler: clang, version: 19, modules: false} |
| 17 | + buildsystem: [cmake, meson] |
| 18 | + |
7 | 19 | steps: |
8 | 20 | - uses: actions/checkout@v4 |
9 | 21 |
|
10 | | - - name: install compilers |
11 | | - run: | |
12 | | - sudo apt install -y gcc-13 g++-13 gcc-14 g++-14 clang-16 clang-17 clang-18 clang-19 libc++-17-dev |
13 | | -
|
14 | | - - name: check compiler versions |
15 | | - run: | |
16 | | - g++-13 --version |
17 | | - g++-14 --version |
18 | | - clang++-16 --version |
19 | | - clang++-17 --version |
20 | | - clang++-18 --version |
21 | | - clang++-19 --version |
22 | | -
|
23 | | - - name: build and run test with gcc 14 |
24 | | - run: | |
25 | | - cmake -B build-gcc-14 -GNinja -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE |
26 | | - cmake --build build-gcc-14 -j |
27 | | - ctest --test-dir build-gcc-14 -j |
28 | | -
|
29 | | - - name: build and run test with gcc 13 |
| 22 | + - name: install gcc |
| 23 | + if: ${{ matrix.compiler.compiler == 'gcc' }} |
30 | 24 | run: | |
31 | | - cmake -B build-gcc-13 -DCMAKE_C_COMPILER=gcc-13 -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE |
32 | | - cmake --build build-gcc-13 -j |
33 | | - ctest --test-dir build-gcc-13 -j |
| 25 | + sudo apt install -y 'g++-${{ matrix.compiler.version }}' |
| 26 | + cat <<'EOF' >> "$GITHUB_ENV" |
| 27 | + CC=gcc-${{ matrix.compiler.version }} |
| 28 | + CXX=g++-${{ matrix.compiler.version }} |
| 29 | + EOF |
34 | 30 |
|
35 | | - - name: build and run test with clang 19 |
| 31 | + - name: install clang |
| 32 | + if: ${{ matrix.compiler.compiler == 'clang' }} |
36 | 33 | run: | |
37 | | - cmake -B build-clang-19 -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE |
38 | | - cmake --build build-clang-19 -j |
39 | | - ctest --test-dir build-clang-19 -j |
| 34 | + sudo apt install -y 'clang-${{ matrix.compiler.version }}' 'libc++-${{ matrix.compiler.version }}-dev' |
| 35 | + cat <<'EOF' >> "$GITHUB_ENV" |
| 36 | + CC=clang-${{ matrix.compiler.version }} |
| 37 | + CXX=clang++-${{ matrix.compiler.version }} |
| 38 | + CXXFLAGS=-stdlib=libc++ |
| 39 | + EOF |
40 | 40 |
|
41 | | - - name: build and run test with clang 18 |
| 41 | + - name: check compiler version |
42 | 42 | run: | |
43 | | - cmake -B build-clang-18 -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE |
44 | | - cmake --build build-clang-18 -j |
45 | | - ctest --test-dir build-clang-18 -j |
| 43 | + "$CXX" --version |
46 | 44 |
|
47 | | - - name: build and run test with clang 17 |
| 45 | + - name: build and run test with cmake |
| 46 | + if: ${{ matrix.buildsystem == 'cmake' }} |
48 | 47 | run: | |
49 | | - cmake -B build-clang-17 -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE |
50 | | - cmake --build build-clang-17 -j |
51 | | - ctest --test-dir build-clang-17 -j |
| 48 | + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release '-DPROXY_BUILD_MODULES=${{ matrix.compiler.modules }}' |
| 49 | + cmake --build build -j |
| 50 | + ctest --test-dir build -j |
52 | 51 |
|
53 | | - - name: build and run test with clang 16 |
| 52 | + - name: build and run test with meson |
| 53 | + if: ${{ matrix.buildsystem == 'meson' }} |
54 | 54 | run: | |
55 | | - cmake -B build-clang-16 -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE |
56 | | - cmake --build build-clang-16 -j |
57 | | - ctest --test-dir build-clang-16 -j |
| 55 | + meson setup build --buildtype=release -Dmodules ${{ matrix.compiler.modules && 'enabled' || 'disabled' }} |
| 56 | + meson test -C build |
0 commit comments