Skip to content

Merge pull request #787 from marktsuchida/mmdevice-meson-tests-disable #3

Merge pull request #787 from marktsuchida/mmdevice-meson-tests-disable

Merge pull request #787 from marktsuchida/mmdevice-meson-tests-disable #3

name: MMDevice/MMCore experimental Meson build & tests
on:
pull_request:
paths:
- MMDevice/**
- MMCore/**
- .github/workflows/ci-mmdevice-mmcore.yml
push:
branches:
- main
paths:
- MMDevice/**
- MMCore/**
- .github/workflows/ci-mmdevice-mmcore.yml
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
os:
- windows
- macos
- macos-intel
- ubuntu
cppstd: # Test the oldest and newest standards we support
- c++14
- c++17
include:
- os: windows
runner: windows-latest
cxx: cl
- os: macos
runner: macos-latest
cxx: clang++
- os: macos-intel
runner: macos-15-intel
cxx: clang++
- os: ubuntu
runner: ubuntu-latest
cxx: g++
name: ${{ matrix.runner }}-${{ matrix.cxx }}-${{ matrix.cppstd }}
runs-on: ${{ matrix.runner }}
env:
CXX: ${{ matrix.cxx }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install tools
run: |
python -m pip install --upgrade pip meson ninja
- uses: ilammy/msvc-dev-cmd@v1
with:
vsversion: '2022'
- name: Build and test MMDevice
run: |
cd MMDevice
meson setup builddir --buildtype debug -Dcpp_std=${{ matrix.cppstd }}
meson test -C builddir --print-errorlogs
- name: Prepare MMCore source
shell: bash
run: |
git clean -dxf
# Manually populate the mmdevice subproject to avoid fetching via
# wrap from the mmdevice mirror repository.
cp -R MMDevice MMCore/subprojects/mmdevice
- name: Build and test MMCore
run: |
cd MMCore
meson setup builddir --buildtype debug -Dcpp_std=${{ matrix.cppstd }}
meson test -C builddir --print-errorlogs