You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
5.8 KiB
YAML
180 lines
5.8 KiB
YAML
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}}-deps=${{matrix.deps}}
|
|
strategy:
|
|
matrix:
|
|
cxx: ['7', '10']
|
|
deps: ['enabled', 'disabled']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: awalsh128/cache-apt-pkgs-action@v1
|
|
with:
|
|
packages: g++-${{matrix.cxx}} libcurl4-gnutls-dev libbrotli-dev libinih-dev libgmock-dev libgtest-dev gettext ninja-build
|
|
version: 1.0
|
|
- name: Install meson
|
|
run: python3 -m pip install meson==0.54.1
|
|
- name: Compile and Test
|
|
env:
|
|
CXX: g++-${{matrix.cxx}}
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" -Dauto_features=${{matrix.deps}} -Dwarning_level=3
|
|
meson compile -C "${{github.workspace}}/build"
|
|
meson test -C "${{github.workspace}}/build"
|
|
Ubuntu-clang:
|
|
runs-on: ubuntu-20.04
|
|
name: Linux-Clang${{matrix.cxx}}-deps=${{matrix.deps}}
|
|
strategy:
|
|
matrix:
|
|
cxx: ['7', '12']
|
|
deps: ['enabled', 'disabled']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: awalsh128/cache-apt-pkgs-action@v1
|
|
with:
|
|
packages: clang-${{matrix.cxx}} libc++abi-${{matrix.cxx}}-dev libc++-${{matrix.cxx}}-dev lld-${{matrix.cxx}} libcurl4-gnutls-dev libbrotli-dev gettext ninja-build
|
|
version: 1.0
|
|
- name: Install meson
|
|
run: python3 -m pip install meson
|
|
- name: Compile and Test
|
|
env:
|
|
CXX: clang++-${{matrix.cxx}}
|
|
CXXFLAGS: -stdlib=libc++
|
|
CXX_LD: lld-${{matrix.cxx}}
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" -Dauto_features=${{matrix.deps}} -Dwarning_level=3 -Dcpp_std=c++20
|
|
meson compile -C "${{github.workspace}}/build" --verbose
|
|
meson test -C "${{github.workspace}}/build" --verbose
|
|
VisualStudio:
|
|
runs-on: windows-latest
|
|
name: MSVC-${{matrix.deps}}-${{matrix.platform}}
|
|
strategy:
|
|
matrix:
|
|
deps: ['forcefallback', 'default']
|
|
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
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Dwarning_level=3 -Dcpp_std=c++latest
|
|
meson compile -C "${{github.workspace}}/build" --verbose
|
|
meson test -C "${{github.workspace}}/build" --verbose
|
|
VisualStudio-clang-cl:
|
|
runs-on: windows-latest
|
|
name: clang-cl-${{matrix.deps}}
|
|
strategy:
|
|
matrix:
|
|
deps: ['forcefallback', 'default']
|
|
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
|
|
CXX: clang-cl
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" --wrap-mode=${{matrix.deps}} -Dwarning_level=3 -Dcpp_std=c++latest
|
|
meson compile -C "${{github.workspace}}/build" --verbose
|
|
meson test -C "${{github.workspace}}/build" --verbose
|
|
MSYS2:
|
|
runs-on: windows-latest
|
|
name: MSYS2-${{matrix.platform}}-deps=${{matrix.deps}}
|
|
strategy:
|
|
matrix:
|
|
deps: ['enabled', 'disabled']
|
|
platform: ['UCRT64', 'CLANG32', '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
|
|
curl:p
|
|
gtest:p
|
|
libinih:p
|
|
meson:p
|
|
ninja:p
|
|
pkgconf:p
|
|
|
|
- name: Compile and Test
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" -Dauto_features=${{matrix.deps}} -Dwarning_level=3 -Dcpp_std=c++20
|
|
meson compile -C "${{github.workspace}}/build" --verbose
|
|
meson test -C "${{github.workspace}}/build" --verbose
|
|
MacOS:
|
|
runs-on: macos-latest
|
|
name: macOS-deps=${{matrix.deps}}
|
|
strategy:
|
|
matrix:
|
|
deps: ['enabled', 'disabled']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install packages
|
|
run: |
|
|
brew install curl brotli inih expat googletest
|
|
python3 -m pip install meson==0.54.1 ninja
|
|
|
|
- name: Compile and Test
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" -Dauto_features=${{matrix.deps}} -Dwarning_level=3
|
|
meson compile -C "${{github.workspace}}/build"
|
|
meson test -C "${{github.workspace}}/build"
|
|
FreeBSD:
|
|
runs-on: macos-latest
|
|
name: FreeBSD
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: FreeBSD
|
|
uses: vmactions/freebsd-vm@v0
|
|
with:
|
|
prepare: |
|
|
pkg install -y cmake 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
|
|
Emscripten:
|
|
runs-on: ubuntu-latest
|
|
name: Emscripten
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install packages
|
|
run: |
|
|
python3 -m pip install meson ninja
|
|
- name: Emscripten
|
|
uses: mymindstorm/setup-emsdk@v11
|
|
- name: Compile
|
|
run: |
|
|
meson setup "${{github.workspace}}/build" --cross-file="${{github.workspace}}/em.txt" --wrap-mode=forcefallback -Ddefault_library=static -Dwarning_level=3 -Dcpp_std=c++20 -DunitTests=disabled
|
|
meson compile -C "${{github.workspace}}/build" --verbose
|