|
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 | + - {compiler: clang, version: 20, modules: true} |
| 18 | + buildsystem: [cmake, meson] |
| 19 | + |
7 | 20 | steps: |
8 | 21 | - uses: actions/checkout@v4 |
9 | 22 |
|
10 | | - - name: install compilers |
11 | | - run: | |
12 | | - wget https://apt.llvm.org/llvm.sh |
13 | | - chmod +x llvm.sh |
14 | | - sudo ./llvm.sh 20 |
15 | | - sudo apt install -y gcc-13 g++-13 gcc-14 g++-14 clang-16 clang-17 clang-18 clang-19 libc++-17-dev |
16 | | -
|
17 | | - - name: check compiler versions |
18 | | - run: | |
19 | | - g++-13 --version |
20 | | - g++-14 --version |
21 | | - clang++-16 --version |
22 | | - clang++-17 --version |
23 | | - clang++-18 --version |
24 | | - clang++-19 --version |
25 | | - clang++-20 --version |
| 23 | + - name: install meson |
| 24 | + if: ${{ matrix.buildsystem == 'meson' }} |
| 25 | + run: pipx install meson |
26 | 26 |
|
27 | | - - name: build and run test with gcc 14 |
| 27 | + - name: install gcc |
| 28 | + if: ${{ matrix.compiler.compiler == 'gcc' }} |
28 | 29 | run: | |
29 | | - cmake -B build-gcc-14 -GNinja -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE |
30 | | - cmake --build build-gcc-14 -j |
31 | | - ctest --test-dir build-gcc-14 -j |
| 30 | + sudo apt install -y 'g++-${{ matrix.compiler.version }}' |
| 31 | + cat <<'EOF' >> "$GITHUB_ENV" |
| 32 | + CC=gcc-${{ matrix.compiler.version }} |
| 33 | + CXX=g++-${{ matrix.compiler.version }} |
| 34 | + EOF |
32 | 35 |
|
33 | | - - name: build and run test with gcc 13 |
34 | | - run: | |
35 | | - cmake -B build-gcc-13 -DCMAKE_C_COMPILER=gcc-13 -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE |
36 | | - cmake --build build-gcc-13 -j |
37 | | - ctest --test-dir build-gcc-13 -j |
38 | | -
|
39 | | - - name: build and run test with clang 20 |
40 | | - run: | |
41 | | - cmake -B build-clang-20 -GNinja -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE |
42 | | - cmake --build build-clang-20 -j |
43 | | - ctest --test-dir build-clang-20 -j |
44 | | - - name: build and run test with clang 19 |
| 36 | + - name: install clang |
| 37 | + if: ${{ matrix.compiler.compiler == 'clang' }} |
45 | 38 | run: | |
46 | | - 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 |
47 | | - cmake --build build-clang-19 -j |
48 | | - ctest --test-dir build-clang-19 -j |
| 39 | + sudo apt install -y 'clang-${{ matrix.compiler.version }}' 'clang-tools-${{ matrix.compiler.version }}' 'libc++-${{ matrix.compiler.version }}-dev' 'libc++abi-${{ matrix.compiler.version }}-dev' |
| 40 | + cat <<'EOF' >> "$GITHUB_ENV" |
| 41 | + CC=clang-${{ matrix.compiler.version }} |
| 42 | + CXX=clang++-${{ matrix.compiler.version }} |
| 43 | + CXXFLAGS=-stdlib=libc++ |
| 44 | + EOF |
49 | 45 |
|
50 | | - - name: build and run test with clang 18 |
| 46 | + - name: check compiler version |
51 | 47 | run: | |
52 | | - 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 |
53 | | - cmake --build build-clang-18 -j |
54 | | - ctest --test-dir build-clang-18 -j |
| 48 | + "$CXX" --version |
55 | 49 |
|
56 | | - - name: build and run test with clang 17 |
| 50 | + - name: build and run test with cmake |
| 51 | + if: ${{ matrix.buildsystem == 'cmake' }} |
57 | 52 | run: | |
58 | | - 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 |
59 | | - cmake --build build-clang-17 -j |
60 | | - ctest --test-dir build-clang-17 -j |
| 53 | + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release '-DPROXY_BUILD_MODULES=${{ matrix.compiler.modules }}' |
| 54 | + cmake --build build -j |
| 55 | + ctest --test-dir build -j |
61 | 56 |
|
62 | | - - name: build and run test with clang 16 |
| 57 | + - name: build and run test with meson |
| 58 | + if: ${{ matrix.buildsystem == 'meson' }} |
63 | 59 | run: | |
64 | | - 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 |
65 | | - cmake --build build-clang-16 -j |
66 | | - ctest --test-dir build-clang-16 -j |
| 60 | + meson setup build --buildtype=release -Dmodules=${{ matrix.compiler.modules && 'auto' || 'disabled' }} |
| 61 | + meson test -C build |
0 commit comments