Skip to content

A GitHub action for DPF-based plugins using CMake

License

Notifications You must be signed in to change notification settings

DISTRHO/dpf-cmake-action

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 

Repository files navigation

This repository contains a GitHub Action specialized for building DPF-based audio plugins that use CMake as their build system.

It supports:

  • building Linux, macOS and Windows in various architectures
  • perform plugin validation for all formats supported by DPF, including run-time memory checks
  • upload "nightly" artifact archives for each build
  • upload release archives

Template setup

The latest recommended setup is:

jobs:
  linux:
    strategy:
      matrix:
        target: [linux-arm64, linux-armhf, linux-i686, linux-riscv64, linux-x86_64]
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: distrho/dpf-cmake-action@v1
        with:
          target: ${{ matrix.target }}

  macos:
    strategy:
      matrix:
        target: [macos-intel, macos-universal]
    runs-on: macos-12
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: distrho/dpf-cmake-action@v1
        with:
          target: ${{ matrix.target }}

  windows:
    strategy:
      matrix:
        target: [win32, win64]
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: distrho/dpf-cmake-action@v1
        with:
          target: ${{ matrix.target }}

  pluginval:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: distrho/dpf-cmake-action@v1
        with:
          target: pluginval

  source:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: distrho/dpf-makefile-action@v1
        with:
          target: source

Documentation

The table below contains all possible properties for use with distrho/dpf-cmake-action@v1 action.

Property Required? Description
target Yes The target platform and architecture to build for
debug No Whether to build in debug mode, defaults to no
lto No Whether to enable Link-Time-Optimizations, defaults to no
dpf_path No Where DPF is located within your repo, defaults to "./dpf"
extraargs No Extra arguments to pass into cmake
faust No Whether to install faust
hvcc No Whether to install hvcc
pawpaw No Whether to use PawPaw to install and setup extra libraries, defaults to no
release No Whether to automatically upload releases, defaults to yes
suffix No Artifact and release filename suffix

The table below contains all possible targets and supported runners.

Target Aliases Allowed runners
linux-arm64 ubuntu-20.04,22.04,24.04
linux-armhf ubuntu-20.04,22.04,24.04
linux-i686 linux-i386 ubuntu-20.04,22.04,24.04
linux-riscv64 ubuntu-20.04,22.04,24.04
linux-x86_64 linux ubuntu-20.04,22.04,24.04
macos-intel macos-12,13,14
macos-universal macos macos-12,13,14
macos-10.15 macos-universal-10.15 macos-12,13,14
win32 ubuntu-20.04,22.04,24.04
win64 ubuntu-20.04,22.04,24.04
pluginval plugin-validation ubuntu-20.04,22.04,24.04
source ubuntu-20.04,22.04,24.04

Notes:

  • ubuntu-24.04 runner has broken 32bit support, which breaks wine and i686 builds
  • macos-intel uses 10.8 as minimum version
  • macos-universal uses 10.12 as minimum version
  • Windows builds use Ubuntu runners in cross-compilation instead of Windows ones

Changelog

1

Initial release

Future Plans

  • Set up MOD Audio builds

About

A GitHub action for DPF-based plugins using CMake

Resources

License

Stars

Watchers

Forks