Update to latest DPF #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
branches: | |
- '*' | |
pull_request: | |
branches: | |
- '*' | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
jobs: | |
linux-arm64: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: Set up dependencies | |
run: | | |
sudo dpkg --add-architecture arm64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list | |
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list | |
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list | |
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq g++-aarch64-linux-gnu libasound2-dev:arm64 libcairo2-dev:arm64 libdbus-1-dev:arm64 libgl1-mesa-dev:arm64 liblo-dev:arm64 libpulse-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 qemu-user-static | |
- name: Build linux arm64 cross-compiled | |
env: | |
CC: aarch64-linux-gnu-gcc | |
CXX: aarch64-linux-gnu-g++ | |
LDFLAGS: -static-libgcc -static-libstdc++ | |
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-arm64-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
linux-armhf: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: Set up dependencies | |
run: | | |
sudo dpkg --add-architecture armhf | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list | |
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list | |
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list | |
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq g++-arm-linux-gnueabihf libasound2-dev:armhf libcairo2-dev:armhf libdbus-1-dev:armhf libgl1-mesa-dev:armhf liblo-dev:armhf libpulse-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf qemu-user-static | |
- name: Build linux armhf cross-compiled | |
env: | |
CC: arm-linux-gnueabihf-gcc | |
CXX: arm-linux-gnueabihf-g++ | |
LDFLAGS: -static-libgcc -static-libstdc++ | |
PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-armhf-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
linux-i686: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: Set up dependencies | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update -qq | |
sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libcairo2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 liblo-dev:i386 libpulse-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 | |
- name: Build linux i686 | |
env: | |
CC: i686-linux-gnu-gcc | |
CXX: i686-linux-gnu-g++ | |
CFLAGS: -m32 | |
CXXFLAGS: -m32 | |
LDFLAGS: -m32 -static-libgcc -static-libstdc++ | |
PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
linux-riscv64: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: Set up dependencies | |
run: | | |
sudo dpkg --add-architecture riscv64 | |
sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list | |
echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list | |
echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list | |
echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libcairo2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 liblo-dev:riscv64 libpulse-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 qemu-user-static | |
- name: Build linux riscv64 cross-compiled | |
env: | |
CC: riscv64-linux-gnu-gcc | |
CXX: riscv64-linux-gnu-g++ | |
LDFLAGS: -static-libgcc -static-libstdc++ | |
PKG_CONFIG_PATH: /usr/lib/riscv64-linux-gnu/pkgconfig | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-riscv64-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
linux-x86_64: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up dependencies | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq libasound2-dev libcairo2-dev libdbus-1-dev libgl1-mesa-dev liblo-dev libpulse-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev | |
- name: Build linux x86_64 | |
env: | |
LDFLAGS: -static-libgcc -static-libstdc++ | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-x86_64-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
macos-universal: | |
runs-on: macos-11 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build macOS universal | |
env: | |
CFLAGS: -arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2 | |
CXXFLAGS: -arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2 | |
LDFLAGS: -arch x86_64 -arch arm64 -mmacosx-version-min=10.12 | |
run: | | |
make features | |
make NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu) | |
./dpf/utils/package-osx-bundles.sh | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
*-macOS.pkg | |
bin/* | |
!bin/*-ladspa.dylib | |
!bin/*-dssi.dylib | |
!bin/lv2 | |
!bin/vst2 | |
!bin/vst3 | |
win32: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: Set up dependencies | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update -qq | |
sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 | |
- name: Build win32 cross-compiled | |
env: | |
CC: i686-w64-mingw32-gcc | |
CXX: i686-w64-mingw32-g++ | |
EXE_WRAPPER: wine | |
PKG_CONFIG: "false" | |
WINEDEBUG: "-all" | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-win32-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
!bin/*-ladspa.dll | |
!bin/*-dssi.dll | |
win64: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo apt-get update -qq | |
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal | |
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 | |
- name: Set up dependencies | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable | |
- name: Build win64 cross-compiled | |
env: | |
CC: x86_64-w64-mingw32-gcc | |
CXX: x86_64-w64-mingw32-g++ | |
EXE_WRAPPER: wine | |
PKG_CONFIG: "false" | |
WINEDEBUG: "-all" | |
run: | | |
make features | |
make WITH_LTO=true -j $(nproc) | |
- name: Set sha8 | |
id: slug | |
run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-win64-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
!bin/*-ladspa.dll | |
!bin/*-dssi.dll | |
plugin-validation: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up dependencies | |
run: | | |
# custom repos | |
wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.1.0_all.deb | |
sudo dpkg -i kxstudio-repos_11.1.0_all.deb | |
sudo apt-get update -qq | |
# build-deps | |
sudo apt-get install -yqq libasound2-dev libcairo2-dev libdbus-1-dev libgl1-mesa-dev liblo-dev libpulse-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev | |
# runtime testing | |
sudo apt-get install -yqq carla-git lilv-utils lv2-dev lv2lint kxstudio-lv2-extensions mod-lv2-extensions valgrind xvfb | |
- name: Build plugins | |
env: | |
CFLAGS: -g | |
CXXFLAGS: -g -DDPF_ABORT_ON_ERROR -DDPF_RUNTIME_TESTING | |
LDFLAGS: -static-libgcc -static-libstdc++ | |
run: | | |
make features | |
make NOOPT=true SKIP_STRIPPING=true -j $(nproc) | |
- name: Validate LV2 ttl syntax | |
run: | | |
lv2_validate \ | |
/usr/lib/lv2/mod.lv2/*.ttl \ | |
/usr/lib/lv2/kx-meta/*.ttl \ | |
/usr/lib/lv2/kx-control-input-port-change-request.lv2/*.ttl \ | |
/usr/lib/lv2/kx-programs.lv2/*.ttl \ | |
./bin/*.lv2/*.ttl | |
- name: Validate LV2 metadata and binaries | |
run: | | |
export LV2_PATH=/tmp/lv2-path | |
mkdir ${LV2_PATH} | |
cp -r bin/*.lv2 \ | |
/usr/lib/lv2/{atom,buf-size,core,data-access,kx-control-input-port-change-request,kx-programs,instance-access,midi,parameters,port-groups,port-props,options,patch,presets,resize-port,state,time,ui,units,urid,worker}.lv2 \ | |
${LV2_PATH} | |
lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls) | |
- name: Test LADSPA plugins | |
run: | | |
for p in $(ls bin/ | grep ladspa.so); do \ | |
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |
valgrind \ | |
--error-exitcode=255 \ | |
--leak-check=full \ | |
--track-origins=yes \ | |
--suppressions=./dpf/utils/valgrind-dpf.supp \ | |
/usr/lib/carla/carla-bridge-native ladspa ./bin/${p} "" 1>/dev/null; \ | |
done | |
- name: Test DSSI plugins | |
run: | | |
for p in $(ls bin/ | grep dssi.so); do \ | |
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |
valgrind \ | |
--error-exitcode=255 \ | |
--leak-check=full \ | |
--track-origins=yes \ | |
--suppressions=./dpf/utils/valgrind-dpf.supp \ | |
/usr/lib/carla/carla-bridge-native dssi ./bin/${p} "" 1>/dev/null; \ | |
done | |
- name: Test LV2 plugins | |
run: | | |
export LV2_PATH=/tmp/lv2-path | |
for p in $(lv2ls); do \ | |
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |
valgrind \ | |
--error-exitcode=255 \ | |
--leak-check=full \ | |
--track-origins=yes \ | |
--suppressions=./dpf/utils/valgrind-dpf.supp \ | |
/usr/lib/carla/carla-bridge-native lv2 "" ${p} 1>/dev/null; \ | |
done | |
- name: Test VST2 plugins | |
run: | | |
for p in $(find bin/ | grep -e vst.so -e '.*\.vst/.*\.so'); do \ | |
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |
valgrind \ | |
--error-exitcode=255 \ | |
--leak-check=full \ | |
--track-origins=yes \ | |
--suppressions=./dpf/utils/valgrind-dpf.supp \ | |
/usr/lib/carla/carla-bridge-native vst2 ./${p} "" 1>/dev/null; \ | |
done | |
- name: Test VST3 plugins | |
run: | | |
for p in $(ls bin/ | grep vst3); do \ | |
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |
valgrind \ | |
--error-exitcode=255 \ | |
--leak-check=full \ | |
--track-origins=yes \ | |
--suppressions=./dpf/utils/valgrind-dpf.supp \ | |
/usr/lib/carla/carla-bridge-native vst3 ./bin/${p} "" 1>/dev/null; \ | |
done | |
- name: Test CLAP plugins | |
run: | | |
for p in $(ls bin/ | grep clap); do \ | |
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ | |
valgrind \ | |
--error-exitcode=255 \ | |
--leak-check=full \ | |
--track-origins=yes \ | |
--suppressions=./dpf/utils/valgrind-dpf.supp \ | |
/usr/lib/carla/carla-bridge-native clap ./bin/${p} "" 1>/dev/null; \ | |
done |