Skip to content

Commit

Permalink
Merge pull request #1162 from redtide/sfizz-lib
Browse files Browse the repository at this point in the history
Move plugins in their own repository
  • Loading branch information
redtide authored May 8, 2023
2 parents 6cd063d + 857cc2f commit 37bf8fe
Show file tree
Hide file tree
Showing 233 changed files with 203 additions and 50,510 deletions.
18 changes: 0 additions & 18 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,23 +1,5 @@
.* export-ignore
.*/** export-ignore
appveyor.yml export-ignore
/scripts/appveyor/** export-ignore
/vst/external/VST_SDK/VST3_SDK/**/CMakeLists.txt export-ignore
/vst/external/VST_SDK/VST3_SDK/public.sdk/samples export-ignore
/vst/external/VST_SDK/VST3_SDK/public.sdk/source/vst/*wrapper/** export-ignore
/vst/external/VST_SDK/VST3_SDK/public.sdk/source/vst/interappaudio/** export-ignore
/vst/external/VST_SDK/VST3_SDK/public.sdk/source/vst/testsuite/** export-ignore
/vst/external/VST_SDK/VST3_SDK/public.sdk/source/vst/utility/test/** export-ignore
/editor/external/vstgui4/**/CMakeLists.txt export-ignore
/editor/external/vstgui4/vstgui/Documentation/** export-ignore
/editor/external/vstgui4/vstgui/doxygen/** export-ignore
/editor/external/vstgui4/vstgui/standalone/** export-ignore
/editor/external/vstgui4/vstgui/tests/** export-ignore
/editor/external/vstgui4/vstgui/tools/** export-ignore
/editor/external/vstgui4/vstgui/uidescription/** export-ignore
/editor/external/vstgui4/vstgui/uidescription/icontroller.h -export-ignore
/editor/external/vstgui4/vstgui/vstgui_standalone* export-ignore
/editor/external/vstgui4/vstgui/vstgui_uidescription* export-ignore
/external/st_audiofile/thirdparty/dr_libs/old/** export-ignore
/external/st_audiofile/thirdparty/dr_libs/tests/** export-ignore
/external/filesystem/test/** export-ignore
Expand Down
275 changes: 94 additions & 181 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:
- 'master'
tags:
- '[0-9]*'
- 'v[0-9]*'
pull_request:
branches:
- '*'
Expand Down Expand Up @@ -47,18 +46,7 @@ jobs:
sudo apt-get update && \
sudo apt-get install \
ninja-build \
libjack-jackd2-dev \
libsndfile1-dev \
libcairo2-dev \
libpango1.0-dev \
libfontconfig1-dev \
libx11-xcb-dev \
libxcb-util-dev \
libxcb-cursor-dev \
libxcb-xkb-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
libxcb-keysyms1-dev
libjack-jackd2-dev
- name: Create Build Environment
shell: bash
working-directory: ${{runner.workspace}}
Expand All @@ -70,13 +58,9 @@ jobs:
cmake "$GITHUB_WORKSPACE" -G Ninja \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DSFIZZ_JACK=ON \
-DSFIZZ_VST=ON \
-DSFIZZ_LV2_UI=ON \
-DSFIZZ_PUREDATA=ON \
-DSFIZZ_TESTS=ON \
-DSFIZZ_SHARED=OFF \
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
-DSFIZZ_LV2=ON \
-DCMAKE_CXX_STANDARD=17
- name: Build tests
shell: bash
Expand Down Expand Up @@ -130,14 +114,10 @@ jobs:
cmake "$GITHUB_WORKSPACE" -G Ninja \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DSFIZZ_JACK=OFF \
-DSFIZZ_VST=OFF \
-DSFIZZ_LV2_UI=OFF \
-DSFIZZ_PUREDATA=OFF \
-DSFIZZ_USE_SNDFILE=ON \
-DSFIZZ_TESTS=ON \
-DSFIZZ_SHARED=OFF \
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
-DSFIZZ_LV2=OFF
-DSFIZZ_STATIC_DEPENDENCIES=OFF
- name: Build tests
shell: bash
working-directory: ${{runner.workspace}}/build
Expand Down Expand Up @@ -166,10 +146,6 @@ jobs:
run: |
cmake "$GITHUB_WORKSPACE" \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DSFIZZ_AU=ON \
-DSFIZZ_LV2=ON \
-DSFIZZ_LV2_UI=ON \
-DSFIZZ_VST=ON \
-DSFIZZ_JACK=OFF \
-DSFIZZ_TESTS=ON \
-DSFIZZ_SHARED=OFF \
Expand All @@ -185,71 +161,23 @@ jobs:
# Reenable with newer cmakes
# working-directory: ${{runner.workspace}}/build
# run: ctest -j 2 -C "$BUILD_TYPE" --output-on-failure
- name: Build plugins
- name: Build
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config "$BUILD_TYPE" -j 2
- name: Package OSX bundles
shell: bash
working-directory: ${{runner.workspace}}
run: ./sfizz/scripts/package-osx-bundles.sh
- name: Create OSX installer
- name: Install
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
productbuild \
--distribution $GITHUB_WORKSPACE/scripts/plugin.pkg/package.xml \
--identifier "sfz.tools.sfizz" \
--package-path "${{runner.workspace}}/build" \
--version 0 \
${{env.install_name}}.pkg
DESTDIR="$(pwd)/$install_name" cmake --build . --config "$BUILD_TYPE" --target install
tar czvf "$install_name".tar.gz "$install_name"
- uses: actions/upload-artifact@v3
with:
name: MacOS installer
name: macOS tarball
path: |
${{runner.workspace}}/build/${{env.install_name}}.pkg
${{runner.workspace}}/build/${{env.install_name}}.tar.gz
build_for_mod:
runs-on: ubuntu-20.04
container:
image: jpcima/mod-plugin-builder
options: --user 0
steps:
- name: Set install name
run: |
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
echo "install_name=sfizz-${GITHUB_REF##*/}-moddevices" >> "$GITHUB_ENV"
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Fix up MOD environment
shell: bash
run: ln -sf /home/builder/mod-workdir ~/mod-workdir
- name: Create Build Environment
shell: bash
working-directory: ${{runner.workspace}}
run: mod-plugin-builder /usr/local/bin/cmake -E make_directory build
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
mod-plugin-builder /usr/local/bin/cmake "$GITHUB_WORKSPACE" \
-DSFIZZ_SYSTEM_PROCESSOR=armv7-a \
-DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_VST=OFF -DSFIZZ_LV2_UI=OFF
- name: Build
shell: bash
working-directory: ${{runner.workspace}}/build
run: mod-plugin-builder /usr/local/bin/cmake --build . --config "$BUILD_TYPE" -- -j 2
- name: Install
working-directory: ${{runner.workspace}}/build
shell: bash
run: |
DESTDIR="$(pwd)/$install_name" mod-plugin-builder /usr/local/bin/cmake --build . --config "$BUILD_TYPE" --target install
tar czvf "$install_name".tar.gz "$install_name"
- uses: actions/upload-artifact@v3
with:
name: MOD devices tarball
path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz
# build_for_mod: MOVED in plugins repository

build_for_windows:
runs-on: windows-2019
Expand Down Expand Up @@ -278,7 +206,7 @@ jobs:
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
run: |
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${{matrix.release_arch}}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON -DSFIZZ_VST=ON -DSFIZZ_LV2=ON -DSFIZZ_PUREDATA=ON
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${{matrix.release_arch}}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON
- name: Build tests
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2 --target sfizz_tests
Expand All @@ -287,96 +215,77 @@ jobs:
- name: Build all
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2
- name: Install pluginval
if: ${{ matrix.platform == 'x64' }}

build_for_mingw:
if: ${{ false }} # DISABLED TEMPORARILY
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- platform: i686
pkg_platform: Win32
bits: 32
- platform: x86_64
pkg_platform: Win64
bits: 64
container:
image: archlinux
steps:
- name: Set install name
run: |
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
echo "install_name=sfizz-${GITHUB_REF##*/}-mingw${{matrix.bits}}" >> "$GITHUB_ENV"
- name: Configure pacman repositories
shell: bash
run: |
cat >>/etc/pacman.conf <<EOF
[multilib]
Include = /etc/pacman.d/mirrorlist
[mingw-w64]
SigLevel = Optional TrustAll
Server = https://github.com/sfztools/arch-mingw-w64/releases/download/repo.\$arch/
EOF
- name: Set up dependencies
shell: bash
run: |
pacman -Sqyu --noconfirm
pacman -Sq --needed --noconfirm base-devel git wget ninja mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Fix MinGW headers
shell: bash
run: |
cp -vf "$GITHUB_WORKSPACE"/scripts/mingw_dwrite_3.h \
/usr/${{matrix.platform}}-w64-mingw32/include/dwrite_3.h
- name: Create Build Environment
shell: bash
working-directory: ${{runner.workspace}}
run: cmake -E make_directory build
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
Invoke-WebRequest https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_Windows.zip -OutFile pluginval.zip
Expand-Archive pluginval.zip -DestinationPath pluginval
echo "$(Get-Location)\pluginval" | Out-File -FilePath ${Env:GITHUB_PATH} -Encoding utf8 -Append
pluginval\pluginval --version
- name: Validate VST3
if: ${{ matrix.platform == 'x64' }}
${{matrix.platform}}-w64-mingw32-cmake "$GITHUB_WORKSPACE" -G Ninja \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DENABLE_LTO=OFF \
-DSFIZZ_JACK=OFF \
-DSFIZZ_STATIC_DEPENDENCIES=ON \
-DCMAKE_CXX_STANDARD=17
- name: Build
shell: bash
working-directory: ${{runner.workspace}}/build
run: pluginval --validate-in-process --validate sfizz.vst3
- name: Create installer
run: ${{matrix.platform}}-w64-mingw32-cmake --build . --config "$BUILD_TYPE" -j 2
- name: Install
working-directory: ${{runner.workspace}}/build
run: iscc /O"." /F"${Env:install_name}" /dARCH="${{matrix.platform}}" innosetup.iss
shell: bash
run: |
DESTDIR="$(pwd)/$install_name" ${{matrix.platform}}-w64-mingw32-cmake --build . --config "$BUILD_TYPE" --target install
tar czvf "$install_name".tar.gz "$install_name"
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.pkg_platform}} installer
path: ${{runner.workspace}}/build/${{env.install_name}}.exe

# build_for_mingw:
# runs-on: ubuntu-20.04
# strategy:
# matrix:
# include:
# - platform: i686
# pkg_platform: Win32
# bits: 32
# - platform: x86_64
# pkg_platform: Win64
# bits: 64
# container:
# image: archlinux
# steps:
# - name: Set install name
# run: |
# echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
# echo "install_name=sfizz-${GITHUB_REF##*/}-mingw${{matrix.bits}}" >> "$GITHUB_ENV"
# - name: Configure pacman repositories
# shell: bash
# run: |
# cat >>/etc/pacman.conf <<EOF
# [multilib]
# Include = /etc/pacman.d/mirrorlist
# [mingw-w64]
# SigLevel = Optional TrustAll
# Server = https://github.com/jpcima/arch-mingw-w64/releases/download/repo.\$arch/
# EOF
# - name: Set up dependencies
# shell: bash
# run: |
# pacman -Sqyu --noconfirm
# pacman -Sq --needed --noconfirm base-devel git wget ninja mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - name: Fix MinGW headers
# shell: bash
# run: |
# cp -vf "$GITHUB_WORKSPACE"/scripts/mingw_dwrite_3.h \
# /usr/${{matrix.platform}}-w64-mingw32/include/dwrite_3.h
# - name: Create Build Environment
# shell: bash
# working-directory: ${{runner.workspace}}
# run: cmake -E make_directory build
# - name: Configure CMake
# shell: bash
# working-directory: ${{runner.workspace}}/build
# run: |
# ${{matrix.platform}}-w64-mingw32-cmake "$GITHUB_WORKSPACE" -G Ninja \
# -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
# -DENABLE_LTO=OFF \
# -DSFIZZ_JACK=OFF \
# -DSFIZZ_VST=ON \
# -DSFIZZ_PUREDATA=ON \
# -DSFIZZ_STATIC_DEPENDENCIES=ON \
# -DCMAKE_CXX_STANDARD=17
# - name: Build
# shell: bash
# working-directory: ${{runner.workspace}}/build
# run: ${{matrix.platform}}-w64-mingw32-cmake --build . --config "$BUILD_TYPE" -j 2
# - name: Install
# working-directory: ${{runner.workspace}}/build
# shell: bash
# run: |
# DESTDIR="$(pwd)/$install_name" ${{matrix.platform}}-w64-mingw32-cmake --build . --config "$BUILD_TYPE" --target install
# tar czvf "$install_name".tar.gz "$install_name"
# - uses: actions/upload-artifact@v3
# with:
# name: ${{matrix.pkg_platform}} MinGW tarball
# path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz
name: ${{matrix.pkg_platform}} MinGW tarball
path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz

build_with_makefile:
runs-on: ubuntu-20.04
Expand Down Expand Up @@ -440,30 +349,34 @@ jobs:
if: startsWith(github.ref, 'refs/tags/')
needs:
- build_for_linux
- build_for_mod
# - build_for_mingw
- build_for_windows
# - build_for_windows
- archive_source_code
steps:
- name: Set install name
run: |
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
# - uses: actions/download-artifact@v3
# with:
# name: Linux tarball
- uses: actions/download-artifact@v3
- if: ${{ false }} # DISABLED: Use distro packages
uses: actions/download-artifact@v3
with:
name: MOD devices tarball
# - uses: actions/download-artifact@v3
# with:
# name: Win32 MinGW tarball
# - uses: actions/download-artifact@v3
# with:
# name: Win64 MinGW tarball
name: Linux tarball
- uses: actions/download-artifact@v3
with:
name: macOS tarball
- if: ${{ false }} # DISABLED: MinGW 32 build temporarily disabled
uses: actions/download-artifact@v3
with:
name: Win32 MinGW tarball
- if: ${{ false }} # DISABLED: MinGW 64 build temporarily disabled
uses: actions/download-artifact@v3
with:
name: Win64 MinGW tarball
- if: ${{ false }} # DISABLED: Innosetup 32 in plugins repo
uses: actions/download-artifact@v3
with:
name: Win32 installer
- uses: actions/download-artifact@v3
- if: ${{ false }} # DISABLED: Innosetup 64 in plugins repo
uses: actions/download-artifact@v3
with:
name: Win64 installer
- uses: actions/download-artifact@v3
Expand Down
Loading

0 comments on commit 37bf8fe

Please sign in to comment.