Try to find the brew preifx to find the installed packages correctly #52
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: linux | |
on: [push, pull_request] | |
jobs: | |
Build: | |
name: ${{matrix.name}} (${{matrix.config}}) | |
runs-on: ${{matrix.os}} | |
env: | |
CMAKE_GENERATOR: Ninja | |
strategy: | |
fail-fast: false | |
matrix: | |
name: [ | |
ubuntu-20.04-gcc-9, | |
ubuntu-20.04-gcc-10, | |
ubuntu-22.04-gcc-11, | |
ubuntu-22.04-gcc-12, | |
ubuntu-24.04-gcc-12, | |
ubuntu-24.04-gcc-13, | |
ubuntu-24.04-gcc-14, | |
ubuntu-20.04-clang-8, | |
ubuntu-20.04-clang-9, | |
ubuntu-20.04-clang-10, | |
ubuntu-22.04-clang-11, | |
ubuntu-22.04-clang-12, | |
ubuntu-22.04-clang-13, | |
ubuntu-22.04-clang-14, | |
ubuntu-22.04-clang-15, | |
ubuntu-24.04-clang-16, | |
ubuntu-24.04-clang-17, | |
ubuntu-24.04-clang-18 | |
] | |
config: [Debug, Release] | |
include: | |
- name: ubuntu-20.04-gcc-9 | |
os: ubuntu-20.04 | |
compiler: gcc | |
version: 9 | |
- name: ubuntu-20.04-gcc-10 | |
os: ubuntu-20.04 | |
compiler: gcc | |
version: 10 | |
- name: ubuntu-22.04-gcc-11 | |
os: ubuntu-22.04 | |
compiler: gcc | |
version: 11 | |
- name: ubuntu-22.04-gcc-12 | |
os: ubuntu-22.04 | |
compiler: gcc | |
version: 12 | |
- name: ubuntu-24.04-gcc-12 | |
os: ubuntu-24.04 | |
compiler: gcc | |
version: 12 | |
- name: ubuntu-24.04-gcc-13 | |
os: ubuntu-24.04 | |
compiler: gcc | |
version: 13 | |
- name: ubuntu-24.04-gcc-14 | |
os: ubuntu-24.04 | |
compiler: gcc | |
version: 14 | |
- name: ubuntu-20.04-clang-8 | |
os: ubuntu-20.04 | |
compiler: clang | |
version: 8 | |
- name: ubuntu-20.04-clang-9 | |
os: ubuntu-20.04 | |
compiler: clang | |
version: 9 | |
- name: ubuntu-20.04-clang-10 | |
os: ubuntu-20.04 | |
compiler: clang | |
version: 10 | |
- name: ubuntu-22.04-clang-11 | |
os: ubuntu-22.04 | |
compiler: clang | |
version: 11 | |
- name: ubuntu-22.04-clang-12 | |
os: ubuntu-22.04 | |
compiler: clang | |
version: 12 | |
- name: ubuntu-22.04-clang-13 | |
os: ubuntu-22.04 | |
compiler: clang | |
version: 13 | |
- name: ubuntu-22.04-clang-14 | |
os: ubuntu-22.04 | |
compiler: clang | |
version: 14 | |
- name: ubuntu-22.04-clang-15 | |
os: ubuntu-22.04 | |
compiler: clang | |
version: 15 | |
- name: ubuntu-24.04-clang-16 | |
os: ubuntu-24.04 | |
compiler: clang | |
version: 16 | |
- name: ubuntu-24.04-clang-17 | |
os: ubuntu-24.04 | |
compiler: clang | |
version: 17 | |
- name: ubuntu-24.04-clang-18 | |
os: ubuntu-24.04 | |
compiler: clang | |
version: 18 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y ninja-build | |
sudo apt install -y doxygen graphviz | |
sudo apt install -y libicu-dev | |
sudo apt install -y libsqlite3-dev | |
sudo apt install -y libx11-dev | |
if [ "${{matrix.compiler}}" = "gcc" ]; then | |
sudo apt install -y g++-${{matrix.version}} | |
echo "CC=gcc-${{matrix.version}}" >> $GITHUB_ENV | |
echo "CXX=g++-${{matrix.version}}" >> $GITHUB_ENV | |
else | |
sudo apt install -y clang-${{matrix.version}} lld-${{matrix.version}} | |
sudo apt install -y libc++-${{matrix.version}}-dev libc++abi-${{matrix.version}}-dev | |
# libunwind is new to clang-12, but not a dependency for the initial version | |
if [ "${{matrix.version}}" = "12" ]; then | |
sudo apt install -y libunwind-${{matrix.version}}-dev | |
fi | |
echo "CC=clang-${{matrix.version}}" >> $GITHUB_ENV | |
echo "CXX=clang++-${{matrix.version}}" >> $GITHUB_ENV | |
fi | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Configure CMake | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE:STRING=${{matrix.config}} | |
- name: Build | |
working-directory: ${{runner.workspace}}/build | |
run: cmake --build . --config ${{matrix.config}} | |
- name: Test | |
working-directory: ${{runner.workspace}}/build | |
run: ctest --output-on-failure -C ${{matrix.config}} | |
- name: Coverage | |
if: matrix.compiler == 'clang' && matrix.config == 'Debug' | |
working-directory: ${{runner.workspace}}/build | |
run: cmake --build . --target coverage | |
- name: Archive Coverage | |
if: matrix.compiler == 'clang' && matrix.config == 'Debug' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-linux.${{matrix.compiler}}-${{matrix.version}} | |
path: | | |
${{runner.workspace}}/build/tests/coverage.${{matrix.compiler}}-${{matrix.version}}.txt | |
${{runner.workspace}}/build/tests/coverage.overview.${{matrix.compiler}}-${{matrix.version}}.txt | |
overwrite: true | |
- name: Documentation | |
working-directory: ${{runner.workspace}}/build | |
run: cmake --build . --target documentation |