Skip to content

Add a Meson build system #5

Add a Meson build system

Add a Meson build system #5

Workflow file for this run

name: Meson
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
name: SIFDecode/${{ matrix.os }}/${{ matrix.fc_cmd }}/${{ matrix.compiler_version }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
compiler_version: [12]
include:
- compiler: gnu
fc_cmd: gfortran
- os: ubuntu-latest
compiler: intel
compiler_version: 2021.9.0
fc_cmd: ifort
- os: macos-latest
compiler: intel
compiler_version: 2021.9.0
fc_cmd: ifort
- os: ubuntu-latest
compiler: intel-llvm
compiler_version: 2023.2.0
fc_cmd: ifx
runs-on: ${{ matrix.os }}
steps:
- name: Check out SIFDecode
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Meson and Ninja
run: pip install meson ninja
- name: Install GNU compilers
if: matrix.compiler == 'gnu'
uses: awvwgk/setup-fortran@main
with:
compiler: gcc
version: ${{ matrix.compiler_version }}
- name: Install classic Intel compilers
if: matrix.compiler == 'intel'
uses: awvwgk/setup-fortran@main
with:
compiler: intel-classic
version: ${{ matrix.compiler_version }}
- name: Install nextgen Intel compilers
if: matrix.compiler == 'intel-llvm'
uses: awvwgk/setup-fortran@main
with:
compiler: intel
version: ${{ matrix.compiler_version }}
# Uncomment this section to obtain ssh access to VM
# - name: Setup tmate session
# if: matrix.os == 'windows-latest'
# uses: mxschmitt/action-tmate@v3
- name: Setup SIFDecode
shell: bash
run: |
meson setup builddir --prefix=$GITHUB_WORKSPACE/../meson
env:
FC: ${{ matrix.fc_cmd }}
- name: Build SIFDecode
shell: bash
run: |
meson compile -C builddir
- uses: actions/upload-artifact@v3
if: failure()
with:
name: ${{ matrix.os }}_${{ matrix.fc_cmd }}_${{ matrix.compiler_version }}_meson-log.txt
path: builddir/meson-logs/meson-log.txt
- name: Install SIFDecode
shell: bash
run: |
meson install -C builddir
- uses: actions/upload-artifact@v3
if: failure()
with:
name: ${{ matrix.os }}_${{ matrix.fc_cmd }}_${{ matrix.compiler_version }}_install-log.txt
path: builddir/meson-logs/install-log.txt