--- /dev/null
+name: meson
+
+on: [push, pull_request]
+
+concurrency:
+ group: ${{github.workflow}}-${{github.head_ref}}
+ cancel-in-progress: true
+
+jobs:
+ Linux-GCC:
+ runs-on: ubuntu-22.04
+ strategy:
+ matrix:
+ cc: ['9', '13']
+ steps:
+ - uses: actions/checkout@v4
+ - uses: egor-tensin/setup-gcc@v1
+ with:
+ version: ${{matrix.cc}}
+
+ - name: Install packages
+ run: |
+ python3 -m pip install meson ninja
+
+ - name: Compile and Test
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ Linux-Clang:
+ runs-on: ubuntu-22.04
+ strategy:
+ matrix:
+ cc: ['9', '22']
+ steps:
+ - uses: actions/checkout@v4
+ - uses: egor-tensin/setup-clang@v1
+
+ - name: Install packages
+ run: |
+ python3 -m pip install meson ninja
+
+ - name: Compile and Test
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ VisualStudio:
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ platform: ['x64', 'x86']
+ steps:
+ - uses: actions/checkout@v4
+
+ - 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:
+ CFLAGS: '/analyze'
+ run: |
+ meson setup "${{github.workspace}}/build" --wrap-mode=forcefallback -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ VisualStudio-clang-cl:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install packages
+ run: |
+ python -m pip install meson ninja
+
+ - uses: ilammy/msvc-dev-cmd@v1
+
+ - name: Compile and Test
+ env:
+ CC: clang-cl
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ MSYS2:
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ platform: ['UCRT64', 'CLANG64']
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{matrix.platform}}
+ pacboy: >-
+ cc:p
+ cmake:p
+ meson:p
+ ninja:p
+ pkgconf:p
+
+ - name: Compile and Test
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ Cygwin:
+ runs-on: windows-latest
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - uses: actions/checkout@v4
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: 'MSYS'
+ install: >-
+ gcc
+ meson
+ ninja
+ - name: Compile and Test
+ run: |
+ meson setup build -Dwarning_level=3 -Dcpp_std=gnu++20 -Dbuildtype=debug
+ meson compile -C build --verbose
+ meson test -C build --verbose
+ MacOS:
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install packages
+ run: |
+ brew install meson
+
+ - name: Compile and Test
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ DragonflyBSD:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: vmactions/dragonflybsd-vm@v1
+ with:
+ prepare: |
+ pkg install -y ninja meson pkgconf
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ FreeBSD:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: vmactions/freebsd-vm@v1
+ with:
+ prepare: |
+ pkg install -y ninja meson pkgconf
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ NetBSD:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: vmactions/netbsd-vm@v1
+ with:
+ prepare: |
+ /usr/sbin/pkg_add meson pkgconf
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ OmniOS:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: vmactions/omnios-vm@v1
+ with:
+ prepare: |
+ pkg install gcc14 meson-313 ninja pkg-config python-313
+ run: |
+ /usr/lib/python3.13/bin/meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ /usr/lib/python3.13/bin/meson compile -C "${{github.workspace}}/build" --verbose
+ /usr/lib/python3.13/bin/meson test -C "${{github.workspace}}/build" --verbose
+ OpenBSD:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: vmactions/openbsd-vm@v1
+ with:
+ prepare: |
+ pkg_add ninja meson pkgconf
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose
+ Alpine:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ platform: ['x86_64', 'x86', 'armhf', 'armv7', 'aarch64', 'ppc64le', 'riscv64', 's390x']
+ defaults:
+ run:
+ shell: alpine.sh {0}
+ steps:
+ - uses: actions/checkout@v4
+ - uses: jirutka/setup-alpine@v1
+ with:
+ branch: edge
+ arch: ${{matrix.platform}}
+ packages: >
+ build-base pkgconf meson samurai
+ - name: Compile and Test
+ run: |
+ meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
+ meson compile -C "${{github.workspace}}/build" --verbose
+ meson test -C "${{github.workspace}}/build" --verbose