name: CMake on: push: branches: [ master ] tags: - '*' pull_request: branches: [ master ] env: BUILD_TYPE: RELEASE jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-22.04, windows-latest, macos-12] include: - os: ubuntu-22.04 cmake: /usr/bin/env CC=gcc-12 CXX=g++-12 cmake - os: macos-12 cmake: /usr/bin/env CC="$(brew --prefix llvm@15)/bin/clang" CXX="$(brew --prefix llvm@15)/bin/clang++" cmake - os: windows-latest cmake: .\.github\workflows\build-windows.bat cmake steps: - uses: actions/checkout@v3 with: submodules: recursive - uses: abdes/gha-setup-ninja@master with: version: 1.11.1 if: matrix.os != 'ubuntu-22.04' - name: Install Linux dependencies run: | sudo apt -q=2 update sudo apt install g++-12 gdb ninja-build sudo apt -q install libgl1-mesa-dri libgl-dev libglx-dev xorg-dev xvfb libopencv-dev sudo apt -q install libsdl2-dev if: matrix.os == 'ubuntu-22.04' - name: Install OSX dependencies run: | brew install SDL2 llvm@15 if: matrix.os == 'macos-12' - name: Configure run: ${{matrix.cmake}} -G "Ninja" -S ${{github.workspace}}/ -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DFLOORMAT_PRECOMPILED-HEADERS:BOOL=OFF - name: Build run: ${{matrix.cmake}} --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install - name: Test run: | cd ${{github.workspace}}/build/install export LD_LIBRARY_PATH="$PWD/lib" ASAN_OPTIONS="detect_leaks=0:abort_on_error=1" xvfb-run gdb -q -batch -x ../../.github/gdbscript.py --args bin/floormat-test