name: On PRs - meson on: pull_request concurrency: group: ${{github.workflow}}-${{github.head_ref}} cancel-in-progress: true jobs: Ubuntu: runs-on: ubuntu-20.04 name: Linux-GCC${{matrix.cxx}}-${{matrix.deps}}-${{matrix.type}} strategy: matrix: cxx: ['7', '8', '9', '10'] deps: ['forcefallback', 'default'] type: ['shared', 'static'] steps: - uses: actions/checkout@v3 - name: Install packages run: | sudo apt install -y g++-${{matrix.cxx}} python3 -m pip install meson ninja - name: Compile and Test env: CXX: g++-${{matrix.cxx}} run: | meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} -Dwarning_level=3 meson compile -C "${{github.workspace}}/build" --verbose meson test -C "${{github.workspace}}/build" --verbose VisualStudio: runs-on: windows-latest name: MSVC-${{matrix.deps}}-${{matrix.type}}-${{matrix.platform}} strategy: matrix: deps: ['forcefallback', 'default'] platform: ['x64', 'x86'] type: ['shared', 'static'] steps: - uses: actions/checkout@v3 - name: Install packages run: | python -m pip install meson ninja - uses: ilammy/msvc-dev-cmd@v1 with: arch: ${{matrix.platform}} - name: Compile and Test env: CXXFLAGS: '/analyze' run: | meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} -Dwarning_level=3 -Dcpp_std=c++latest meson compile -C "${{github.workspace}}/build" --verbose meson test -C "${{github.workspace}}/build" --verbose MacOS: runs-on: macos-latest name: macOS-${{matrix.deps}}-${{matrix.type}} strategy: matrix: deps: ['forcefallback', 'default'] type: ['shared', 'static'] steps: - uses: actions/checkout@v3 - name: Install packages run: | python3 -m pip install meson ninja - name: Compile and Test run: | meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Ddefault_library=${{matrix.type}} -Dwarning_level=3 -Dcpp_std=c++20 meson compile -C "${{github.workspace}}/build" --verbose meson test -C "${{github.workspace}}/build" --verbose FreeBSD: runs-on: macos-latest name: FreeBSD steps: - uses: actions/checkout@v3 - name: FreeBSD uses: vmactions/freebsd-vm@v0 with: prepare: | pkg install -y curl ninja meson gettext pkgconf googletest expat inih brotli run: | meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dcpp_std=c++20 meson compile -C "${{github.workspace}}/build" --verbose meson test -C "${{github.workspace}}/build" --verbose OpenBSD: runs-on: macos-latest name: OpenBSD steps: - uses: actions/checkout@v3 - name: OpenBSD uses: vmactions/openbsd-vm@v0 with: prepare: | pkg_add curl ninja meson gettext pkgconf gtest libiconv run: | meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dcpp_std=c++20 meson compile -C "${{github.workspace}}/build" --verbose meson test -C "${{github.workspace}}/build" --verbose