Skip to content

Updates for Ubuntu 24.04 #21

Updates for Ubuntu 24.04

Updates for Ubuntu 24.04 #21

Workflow file for this run

name: JuicySF All
defaults:
run:
shell: bash
on:
workflow_dispatch:
pull_request:
push:
env:
dir_build: build
dir_source: .
type: Release
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
include:
- os: ubuntu-latest
name: linux
generator: Unix Makefiles
flags: |
-DBUILD_SHARED_LIBS=off \
-Denable-portaudio=off \
-Denable-dbus=off \
-Denable-aufile=off \
-Denable-ipv6=off \
-Denable-jack=off \
-Denable-ladspa=off \
-Denable-libinstpatch=off \
-Denable-libsndfile=on \
-Denable-midishare=off \
-Denable-opensles=off \
-Denable-oboe=off \
-Denable-network=off \
-Denable-oss=off \
-Denable-dsound=off \
-Denable-wasapi=off \
-Denable-waveout=off \
-Denable-winmidi=off \
-Denable-sdl2=off \
-Denable-pkgconfig=on \
-Denable-pulseaudio=off \
-Denable-readline=off \
-Denable-threads=on \
-Denable-openmp=on \
-Denable-coreaudio=off \
-Denable-coremidi=off \
-Denable-framework=on \
-Denable-lash=off \
-Denable-alsa=off \
-Denable-systemd=off \
install_deps: ~/deps
install_path: ~/juicydeps
path: ./build/JuicySFPlugin_artefacts/Release
- os: macos-latest
name: mac
generator: Unix Makefiles
flags: |
-DBUILD_SHARED_LIBS=on \
-Denable-portaudio=off \
-Denable-dbus=off \
-Denable-aufile=off \
-Denable-ipv6=off \
-Denable-jack=off \
-Denable-ladspa=off \
-Denable-libinstpatch=off \
-Denable-libsndfile=on \
-Denable-midishare=off \
-Denable-opensles=off \
-Denable-oboe=off \
-Denable-network=off \
-Denable-oss=off \
-Denable-dsound=off \
-Denable-wasapi=off \
-Denable-waveout=off \
-Denable-winmidi=off \
-Denable-sdl2=off \
-Denable-pkgconfig=on \
-Denable-pulseaudio=off \
-Denable-readline=off \
-Denable-threads=on \
-Denable-openmp=on \
-Denable-coreaudio=off \
-Denable-coremidi=off \
-Denable-framework=on \
-Denable-lash=off \
-Denable-alsa=off \
-Denable-systemd=off \
install_deps: ~/deps
install_path: ~/juicydeps
path: ./build/JuicySFPlugin_artefacts/Release
- os: windows-latest
name: win
generator: Visual Studio 17 2022
flags: -Denable-jack=0 -Denable-pulseaudio=0 -Denable-ladspa=0 -Denable-dbus=0 -Denable-readline=0 -Denable-sdl2=0 -Denable-libinstpatch=0
install_deps: D:/deps
install_path: D:/juicydeps
path: ./build/JuicySFPlugin_artefacts/Release
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update && sudo apt-get install cmake-data cmake libglib2.0-0 libsndfile-dev libasound2-dev libjack-jackd2-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev g++ clang clang-tidy ladspa-sdk
- name: Install macOS dependencies
if: matrix.os == 'macos-latest'
run: |
brew install fluidsynth pkg-config cmake pulseaudio portaudio jack dbus sdl2
- name: Install Windows dependencies
if: matrix.os == 'windows-latest'
run: |
mkdir ${{ matrix.install_deps }}
cd ${{ matrix.install_deps }}
curl -LfsS -o gtk-bundle-dev.zip http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/gtk+-bundle_2.22.1-20101229_win64.zip
curl -LfsS -o libsndfile-dev.zip http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64.zip
7z x -aos -- gtk-bundle-dev.zip
7z x -aos -- libsndfile-dev.zip
mv ./lib/libsndfile-1.lib ./lib/sndfile.lib
mv ./lib/libsndfile-1.def ./lib/sndfile.def
rm -rf C:/Strawberry/perl/bin/pkg-config*
echo "${{ matrix.install_deps }}/bin;${{ matrix.install_path }}/bin" >> $GITHUB_PATH
- name: Build JUCE dependency
run: |
cd JUCE
cmake -B cmake-build-install -DCMAKE_BUILD_TYPE="${{ env.type }}" -DCMAKE_INSTALL_PREFIX="${{ matrix.install_path }}"
cmake --build cmake-build-install --target install
- name: Build Fluidsynth dependency
run: |
cd fluidsynth
cmake \
-G "${{ matrix.generator }}" \
-DCMAKE_BUILD_TYPE="${{ env.type }}" \
-DCMAKE_INSTALL_PREFIX="${{ matrix.install_path }}" \
-DCMAKE_VERBOSE_MAKEFILE=1 \
-DNO_GUI=1 \
${{ matrix.flags }} \
-S "${{ env.dir_source }}" \
-B "${{ env.dir_build }}"
cmake --build ${{ env.dir_build }} --config ${{ env.type }} --target install
- name: Copy Fluidsynth dependency
if: matrix.os == 'windows-latest'
run: |
ls "fluidsynth/${{ env.dir_build }}/src/Release"
mkdir -p "${{ env.dir_build }}"
cp "fluidsynth/${{ env.dir_build }}/src/Release/fluidsynth.lib" "${{ env.dir_build }}"
- name: Build JuicySF
run: |
PKG_CONFIG_PATH="${{ matrix.install_path }}/lib/pkgconfig;${{ matrix.install_deps }}/lib/pkgconfig;$PKG_CONFIG_PATH" \
cmake \
-G "${{ matrix.generator }}" \
-DCMAKE_BUILD_TYPE="${{ env.type }}" \
-DCMAKE_PREFIX_PATH="${{ matrix.install_path }};${{ matrix.install_deps }}" \
-DVST3_COPY_DIR="final" \
-S "${{ env.dir_source }}" \
-B "${{ env.dir_build }}"
PKG_CONFIG_PATH="${{ matrix.install_path }}/lib/pkgconfig;${{ matrix.install_deps }}/lib/pkgconfig;$PKG_CONFIG_PATH" \
cmake --build ${{ env.dir_build }} --config ${{ env.type }}
- name: List files generated
run: |
cd ${{ matrix.path }}
find "$(pwd)"
- uses: actions/upload-artifact@v3
with:
name: fluidsynth-${{ matrix.name }}
path: ${{ matrix.path }}