Skip to content

Meson build system support #138

Meson build system support

Meson build system support #138

Workflow file for this run

name: Build
on: [push, pull_request, workflow_dispatch]
jobs:
build:
strategy:
matrix:
sys:
- { os: windows-latest, shell: 'msys2 {0}' }
- { os: ubuntu-latest, shell: bash }
- { os: macos-latest, shell: bash }
runs-on: ${{ matrix.sys.os }}
defaults:
run:
shell: ${{ matrix.sys.shell }}
steps:
- name: Install dependencies (Ubuntu)
if: matrix.sys.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install meson libsndfile1-dev libvolk2-dev libfftw3-dev catch2
- name: Install dependencies (Mac OS)
if: matrix.sys.os == 'macos-latest'
run: brew install meson libsndfile volk fftw catch2
- name: Install dependencies (Windows)
if: matrix.sys.os == 'windows-latest'
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: git mingw-w64-x86_64-meson mingw-w64-x86_64-ninja mingw-w64-x86_64-gcc mingw-w64-x86_64-libsndfile mingw-w64-x86_64-fftw mingw-w64-x86_64-volk mingw-w64-x86_64-catch
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure
run: meson setup builddir
- name: Build
run: meson compile -C builddir
- name: Test
run: meson test -C builddir
# TODO: Package
# TODO: Upload artifacts
# release:
# runs-on: "ubuntu-latest"
# needs: build
# steps:
# - name: Get current date
# id: date
# run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
# - name: Download binaries
# uses: actions/download-artifact@v4
# - name: Release nightly
# if: github.ref == 'refs/heads/master'
# uses: marvinpinto/action-automatic-releases@v1.2.1
# with:
# repo_token: "${{ secrets.GITHUB_TOKEN }}"
# automatic_release_tag: "latest"
# prerelease: true
# title: "Sigutils nightly (${{steps.date.outputs.date}})"
# files: sigutils*/*
# - name: Release stable
# if: contains(github.ref, 'refs/tags/v')
# uses: marvinpinto/action-automatic-releases@v1.2.1
# with:
# repo_token: "${{ secrets.GITHUB_TOKEN }}"
# prerelease: false
# title: "Sigutils ${{github.ref_name}}"
# files: sigutils*/*