From 639c47ae30a4b1f80bd2a5622f8c61c38d8120ca Mon Sep 17 00:00:00 2001 From: Kim T Date: Fri, 5 Aug 2022 23:00:59 -0700 Subject: [PATCH 01/20] Add JUCE as git submodule --- .gitmodules | 3 +++ sdk | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 sdk diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0c5548a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "sdk"] + path = sdk + url = https://github.com/juce-framework/JUCE diff --git a/sdk b/sdk new file mode 160000 index 0000000..4c43bf4 --- /dev/null +++ b/sdk @@ -0,0 +1 @@ +Subproject commit 4c43bf429e90690cb1f05b7c8a044cc9f5a59e7d From 085e5a3a3f6ac7ced0bb18a8af031ffc97159766 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 6 Aug 2022 11:09:07 -0700 Subject: [PATCH 02/20] Remove submodule --- .gitmodules | 3 --- sdk | 1 - 2 files changed, 4 deletions(-) delete mode 160000 sdk diff --git a/.gitmodules b/.gitmodules index 0c5548a..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "sdk"] - path = sdk - url = https://github.com/juce-framework/JUCE diff --git a/sdk b/sdk deleted file mode 160000 index 4c43bf4..0000000 --- a/sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4c43bf429e90690cb1f05b7c8a044cc9f5a59e7d From c2f52410ef5ff38a9d5a51ba032cbe070c02fa9e Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 6 Aug 2022 11:11:42 -0700 Subject: [PATCH 03/20] Add JUCE submodule --- .gitmodules | 3 +++ JUCE | 1 + 2 files changed, 4 insertions(+) create mode 160000 JUCE diff --git a/.gitmodules b/.gitmodules index e69de29..db85c57 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "JUCE"] + path = JUCE + url = https://github.com/juce-framework/JUCE diff --git a/JUCE b/JUCE new file mode 160000 index 0000000..4c43bf4 --- /dev/null +++ b/JUCE @@ -0,0 +1 @@ +Subproject commit 4c43bf429e90690cb1f05b7c8a044cc9f5a59e7d From 0c9fd9ad1e8175980a162b55ead392c107019bab Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 6 Aug 2022 11:12:06 -0700 Subject: [PATCH 04/20] Add fluidsynth submodule --- .gitmodules | 3 +++ fluidsynth | 1 + 2 files changed, 4 insertions(+) create mode 160000 fluidsynth diff --git a/.gitmodules b/.gitmodules index db85c57..2405dce 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "JUCE"] path = JUCE url = https://github.com/juce-framework/JUCE +[submodule "fluidsynth"] + path = fluidsynth + url = https://github.com/FluidSynth/fluidsynth.git diff --git a/fluidsynth b/fluidsynth new file mode 160000 index 0000000..e64ad84 --- /dev/null +++ b/fluidsynth @@ -0,0 +1 @@ +Subproject commit e64ad841cb4b6afdc66a0231835b16638108c727 From 02c7b21f3bcddfd00d2f2ba70d7f1cdb19b6e7a5 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 6 Aug 2022 21:46:58 -0700 Subject: [PATCH 05/20] Add instructions and use submodules --- CMakeLists.txt | 5 +++-- README.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 534008b..eac7394 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,9 +25,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to # include that subdirectory as part of the build. -find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system +# find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system # or -# add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE +add_subdirectory(JUCE) # If you've put JUCE in a subdirectory called JUCE +add_subdirectory(fluidsynth) # default to static libraries, since distribution is easier option(BUILD_SHARED_LIBS "Build using shared libraries" off) diff --git a/README.md b/README.md index 19a7b54..e777fa5 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,38 @@ Or any output device that you can hear audio through. # Building from source (macOS) +Install CMake, FluidSynth and Xcode using: + + brew install cmake pkg-config + xcode-select --install + +Check you have the correct dependencies installed: + + cmake -version + xcodebuild -version + +Ensure all git submodules are initialized: + + git submodule update --init --recursive + +Depending on the the operating system you are on/building for, swap the generator string in the build commands: + +* Linux: "Unix Makefiles" +* MacOS: "Xcode" +* Windows: "Visual Studio 16 2019" + +Compile a development version of the plugin using: + + cmake \ + -G "Xcode" \ + -DCMAKE_BUILD_TYPE=Debug \ + -DJUCE_BUILD_EXAMPLES=ON \ + -DJUCE_BUILD_EXTRAS=OFF \ + -S ./ \ + -B ./build + + cmake --build ./build --config Debug --target JuicySFPlugin_VST3 + Install XCode and XCode command line tools. Accept terms. Install [JUCE](https://shop.juce.com/get-juce) 5.3 in `/Applications`. From e45098a1bf721dbab7ae10d37a49f886c47fd657 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 6 Aug 2022 21:47:10 -0700 Subject: [PATCH 06/20] Add GitHub automated pipeline --- .github/workflows/release.yml | 143 ++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..870e30c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,143 @@ +name: Release + +on: + workflow_dispatch: + push: + tags: + - "v*" + +jobs: + create_release: + name: Create release + runs-on: ubuntu-latest + outputs: + upload_id: ${{ steps.draft_release.outputs.id }} + upload_url: ${{ steps.draft_release.outputs.upload_url }} + steps: + - name: Draft release + id: draft_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: true + + build_release: + name: Build release + needs: create_release + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + include: + - os: ubuntu-latest + name: linux + generator: Unix Makefiles + path: ./build/Release + - os: macos-latest + name: mac + generator: Xcode + path: ./build/Release + - os: windows-latest + name: win + generator: Visual Studio 16 2019 + path: ./build/Release + steps: + - name: Install Linux dependencies + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get update && sudo apt-get install cmake pkg-config gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev + + - name: Install macOS dependencies + if: matrix.os == 'macos-latest' + run: brew install cmake pkg-config + + - name: Install Windows dependencies + if: matrix.os == 'windows-latest' + run: choco install cmake pkgconfiglite zip + + - name: Checkout code + uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Build plugins + run: | + cmake \ + -G "${{ matrix.generator }}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DJUCE_BUILD_EXAMPLES=OFF \ + -DJUCE_BUILD_EXTRAS=OFF \ + -S ./ \ + -B ./build + cmake --build ./build --config Release --target JuicySFPlugin_VST3 + + - name: List files + run: ls "${{ matrix.path }}" + + - name: Metadata + run: | + npm install @studiorack/cli -g + cp -v ./src/assets/* "${{ matrix.path }}" + studiorack validate "${{ matrix.path }}/**/*.{vst,vst3}" --files --json --txt --zip --summary + + - name: Upload + uses: actions/github-script@v3 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const path = require('path'); + const fs = require('fs'); + const release_id = '${{ needs.create_release.outputs.upload_id }}'; + for (let file of await fs.readdirSync('${{ matrix.path }}')) { + if (path.extname(file) === '.zip') { + console.log('upload zip', `${{ matrix.path }}/${file}`); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: `${path.basename(file, path.extname(file))}-${{ matrix.name }}.zip`, + data: await fs.readFileSync(`${{ matrix.path }}/${file}`) + }); + if ("${{ matrix.os }}" == 'macos-latest') { + console.log('upload png', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: `${path.basename(file, path.extname(file))}.png`, + data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`) + }); + console.log('upload wav', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: `${path.basename(file, path.extname(file))}.wav`, + data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`) + }); + } + } + } + - name: Upload metadata + if: matrix.os == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: ${{ matrix.path }}/plugins.json + asset_name: plugins.json + asset_content_type: application/json + + publish_release: + name: Publish release + needs: [create_release, build_release] + runs-on: ubuntu-latest + steps: + - uses: eregon/publish-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + release_id: ${{ needs.create_release.outputs.upload_id }} From c12301cc3dab5d5f92d2dd58e10e2e208a68640d Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 6 Aug 2022 22:38:54 -0700 Subject: [PATCH 07/20] Fix readline dependency --- .github/workflows/release.yml | 11 ++++++----- README.md | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 870e30c..5c43ad0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,23 +35,23 @@ jobs: - os: ubuntu-latest name: linux generator: Unix Makefiles - path: ./build/Release + path: ./build/JuicySFPlugin_artefacts/Debug/VST3 - os: macos-latest name: mac generator: Xcode - path: ./build/Release + path: ./build/JuicySFPlugin_artefacts/Debug/VST3 - os: windows-latest name: win generator: Visual Studio 16 2019 - path: ./build/Release + path: ./build/JuicySFPlugin_artefacts/Debug/VST3 steps: - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' - run: sudo apt-get update && sudo apt-get install cmake pkg-config gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev + run: sudo apt-get update && sudo apt-get install cmake pkg-config libreadline-dev gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev - name: Install macOS dependencies if: matrix.os == 'macos-latest' - run: brew install cmake pkg-config + run: brew install cmake pkg-config readline - name: Install Windows dependencies if: matrix.os == 'windows-latest' @@ -64,6 +64,7 @@ jobs: - name: Build plugins run: | + export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" cmake \ -G "${{ matrix.generator }}" \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/README.md b/README.md index e777fa5..693ff38 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ Or any output device that you can hear audio through. Install CMake, FluidSynth and Xcode using: - brew install cmake pkg-config + brew install cmake pkg-config readline xcode-select --install Check you have the correct dependencies installed: @@ -147,6 +147,7 @@ Depending on the the operating system you are on/building for, swap the generato Compile a development version of the plugin using: + export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" cmake \ -G "Xcode" \ -DCMAKE_BUILD_TYPE=Debug \ From c84a576701e30bf09a6aac6252f83e8935f53af1 Mon Sep 17 00:00:00 2001 From: Kim T Date: Tue, 9 Aug 2022 21:18:40 -0700 Subject: [PATCH 08/20] Add missing packages --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5c43ad0..435f62a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: steps: - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' - run: sudo apt-get update && sudo apt-get install cmake pkg-config libreadline-dev gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev + run: sudo apt-get update && sudo apt-get install cmake pkg-config libcurl webkit2gtk-4.0 sndfile libpulse-simple jack libpipewire-0.3 lash-1.0 libinstpatch-1.0 libsystemd libreadline-dev gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev - name: Install macOS dependencies if: matrix.os == 'macos-latest' From 0ecaf23fcf09eb3b265ca2c9a2b79f5f5a16e204 Mon Sep 17 00:00:00 2001 From: Kim T Date: Tue, 9 Aug 2022 21:27:00 -0700 Subject: [PATCH 09/20] Use fluidsynth dependencies --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 435f62a..8dd2ddd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,11 +47,11 @@ jobs: steps: - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' - run: sudo apt-get update && sudo apt-get install cmake pkg-config libcurl webkit2gtk-4.0 sndfile libpulse-simple jack libpipewire-0.3 lash-1.0 libinstpatch-1.0 libsystemd libreadline-dev gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev + run: sudo apt-get update && sudo apt-get install cmake pkg-config cmake-data libglib2.0-0 libsndfile-dev libasound2-dev libjack-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev - name: Install macOS dependencies if: matrix.os == 'macos-latest' - run: brew install cmake pkg-config readline + run: brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp - name: Install Windows dependencies if: matrix.os == 'windows-latest' From 2baa96531f0fe9378e957185038ad50276bcd538 Mon Sep 17 00:00:00 2001 From: Kim T Date: Tue, 9 Aug 2022 21:34:48 -0700 Subject: [PATCH 10/20] Allow all jobs to run for now --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8dd2ddd..acf7566 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,6 +29,7 @@ jobs: needs: create_release runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] include: From d06a80d92c79b79e3bc0d07a9a50b1ca0f972305 Mon Sep 17 00:00:00 2001 From: Kim T Date: Tue, 9 Aug 2022 22:33:03 -0700 Subject: [PATCH 11/20] Different dependencies --- .github/workflows/release.yml | 9 ++++++--- README.md | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index acf7566..2a772e6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,11 +48,15 @@ jobs: steps: - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' - run: sudo apt-get update && sudo apt-get install cmake pkg-config cmake-data libglib2.0-0 libsndfile-dev libasound2-dev libjack-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev + run: | + sudo apt-get update && sudo apt-get install cmake pkg-config gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev libreadline-dev + export PKG_CONFIG_PATH="/usr/lib/pkgconfig:$PKG_CONFIG_PATH" - name: Install macOS dependencies if: matrix.os == 'macos-latest' - run: brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + run: | + brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" - name: Install Windows dependencies if: matrix.os == 'windows-latest' @@ -65,7 +69,6 @@ jobs: - name: Build plugins run: | - export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" cmake \ -G "${{ matrix.generator }}" \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/README.md b/README.md index 693ff38..68bacda 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ Compile a development version of the plugin using: cmake \ -G "Xcode" \ -DCMAKE_BUILD_TYPE=Debug \ - -DJUCE_BUILD_EXAMPLES=ON \ + -DJUCE_BUILD_EXAMPLES=OFF \ -DJUCE_BUILD_EXTRAS=OFF \ -S ./ \ -B ./build From 48240a6f7e8066f2908461e88eea8fc8e589dfa5 Mon Sep 17 00:00:00 2001 From: Kim T Date: Wed, 10 Aug 2022 21:33:17 -0700 Subject: [PATCH 12/20] Install both JUCE and Fluidsynth dependencies --- .github/workflows/release.yml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a772e6..8b443f6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,18 +49,33 @@ jobs: - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' run: | - sudo apt-get update && sudo apt-get install cmake pkg-config gcc "libstdc++6" libx11-xcb-dev libxcb-util-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libcairo2-dev libgtkmm-3.0-dev libsqlite3-dev libxcb-keysyms1-dev libasound2-dev libreadline-dev - export PKG_CONFIG_PATH="/usr/lib/pkgconfig:$PKG_CONFIG_PATH" + sudo apt update && sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev + sudo apt-get update && sudo apt-get install autotools-dev automake autoconf libtool g++ autopoint make cmake bison flex yasm pkg-config libpulse-dev python3-dev gettext build-essential pkg-config curl libasound2-dev dpkg-dev debhelper build-essential devscripts fakeroot transfig gperf libdbus-glib-1-dev wget glib-networking libxtst-dev libxrandr-dev git intltool ccache python3-setuptools autogen maven make libreadline-dev + export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH" - name: Install macOS dependencies if: matrix.os == 'macos-latest' run: | brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + brew install glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" - name: Install Windows dependencies if: matrix.os == 'windows-latest' - run: choco install cmake pkgconfiglite zip + run: | + choco install cmake curl zip unzip + curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -o pkg-config.zip + unzip pkg-config.zip + ls pkg-config + cp pkg-config\bin\pkg-config.exe C:\MinGW\bin + curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -o gettext-runtime.zip + unzip gettext-runtime.zip + ls gettext-runtime + cp gettext-runtime\bin\intl.dll C:\MinGW\bin + curl -L http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -o glib.zip + unzip glib.zip + ls glib + cp glib\bin\libglib-2.0-0.dll C:\MinGW\bin - name: Checkout code uses: actions/checkout@v2 From 656af67e051caaebff4e6648fedb54fc971d1640 Mon Sep 17 00:00:00 2001 From: Kim T Date: Thu, 11 Aug 2022 21:48:27 -0700 Subject: [PATCH 13/20] cp paths slashes --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b443f6..3f53c18 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,15 +67,15 @@ jobs: curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -o pkg-config.zip unzip pkg-config.zip ls pkg-config - cp pkg-config\bin\pkg-config.exe C:\MinGW\bin + cp pkg-config/bin/pkg-config.exe C:\MinGW\bin curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -o gettext-runtime.zip unzip gettext-runtime.zip ls gettext-runtime - cp gettext-runtime\bin\intl.dll C:\MinGW\bin + cp gettext-runtime/bin/intl.dll C:\MinGW\bin curl -L http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -o glib.zip unzip glib.zip ls glib - cp glib\bin\libglib-2.0-0.dll C:\MinGW\bin + cp glib/bin/libglib-2.0-0.dll C:\MinGW\bin - name: Checkout code uses: actions/checkout@v2 From e28796a6c18329b923416e2654f01bc7b4bf0c95 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 20 Aug 2022 21:00:10 -0700 Subject: [PATCH 14/20] Use fluidsynth commands --- .github/workflows/release.yml | 75 ++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3f53c18..34fa9f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,6 +6,11 @@ on: tags: - "v*" +env: + dir_build: build + dir_source: . + type: Release + jobs: create_release: name: Create release @@ -36,65 +41,63 @@ jobs: - os: ubuntu-latest name: linux generator: Unix Makefiles + flags: -Denable-portaudio=1 -Denable-ladspa=1 path: ./build/JuicySFPlugin_artefacts/Debug/VST3 - os: macos-latest name: mac - generator: Xcode + generator: Unix Makefiles + flags: -Denable-portaudio=1 -Denable-ladspa=1 path: ./build/JuicySFPlugin_artefacts/Debug/VST3 - os: windows-latest name: win - generator: Visual Studio 16 2019 + 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 path: ./build/JuicySFPlugin_artefacts/Debug/VST3 steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + submodules: recursive + - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' - run: | - sudo apt update && sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev - sudo apt-get update && sudo apt-get install autotools-dev automake autoconf libtool g++ autopoint make cmake bison flex yasm pkg-config libpulse-dev python3-dev gettext build-essential pkg-config curl libasound2-dev dpkg-dev debhelper build-essential devscripts fakeroot transfig gperf libdbus-glib-1-dev wget glib-networking libxtst-dev libxrandr-dev git intltool ccache python3-setuptools autogen maven make libreadline-dev - export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH" + run: sudo apt-get update && sudo apt-get install cmake-data cmake libglib2.0-0 libsndfile-dev libasound2-dev libjack-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev g++-7 g++-8 clang-7 clang-8 clang-9 clang-10 clang-tidy-10 - name: Install macOS dependencies if: matrix.os == 'macos-latest' - run: | - brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp - brew install glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp - export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" + run: brew install cmake pulseaudio portaudio jack dbus sdl2 - name: Install Windows dependencies if: matrix.os == 'windows-latest' run: | - choco install cmake curl zip unzip - curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -o pkg-config.zip - unzip pkg-config.zip - ls pkg-config - cp pkg-config/bin/pkg-config.exe C:\MinGW\bin - curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -o gettext-runtime.zip - unzip gettext-runtime.zip - ls gettext-runtime - cp gettext-runtime/bin/intl.dll C:\MinGW\bin - curl -L http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -o glib.zip - unzip glib.zip - ls glib - cp glib/bin/libglib-2.0-0.dll C:\MinGW\bin - - - name: Checkout code - uses: actions/checkout@v2 - with: - submodules: recursive + mkdir D:/deps + cd D:/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 "/deps/bin" >> $GITHUB_PATH - name: Build plugins run: | cmake \ -G "${{ matrix.generator }}" \ - -DCMAKE_BUILD_TYPE=Release \ - -DJUCE_BUILD_EXAMPLES=OFF \ - -DJUCE_BUILD_EXTRAS=OFF \ - -S ./ \ - -B ./build - cmake --build ./build --config Release --target JuicySFPlugin_VST3 + -DCMAKE_BUILD_TYPE="${{ env.type }}" \ + -DCMAKE_INSTALL_PREFIX=$HOME/fluidsynth_install \ + -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 JuicySFPlugin_VST3 - - name: List files - run: ls "${{ matrix.path }}" + - name: List files generated + run: | + cd ${{ matrix.path }} + find "$(pwd)" - name: Metadata run: | From e8d97f801a455df90d8bc719fe20922ea81b4906 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 20 Aug 2022 21:00:59 -0700 Subject: [PATCH 15/20] Disable releases --- .github/workflows/release.yml | 162 +++++++++++++++++----------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34fa9f5..dc168b0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,8 +3,8 @@ name: Release on: workflow_dispatch: push: - tags: - - "v*" + # tags: + # - "v*" env: dir_build: build @@ -12,22 +12,22 @@ env: type: Release jobs: - create_release: - name: Create release - runs-on: ubuntu-latest - outputs: - upload_id: ${{ steps.draft_release.outputs.id }} - upload_url: ${{ steps.draft_release.outputs.upload_url }} - steps: - - name: Draft release - id: draft_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: Release ${{ github.ref }} - draft: true + # create_release: + # name: Create release + # runs-on: ubuntu-latest + # outputs: + # upload_id: ${{ steps.draft_release.outputs.id }} + # upload_url: ${{ steps.draft_release.outputs.upload_url }} + # steps: + # - name: Draft release + # id: draft_release + # uses: actions/create-release@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # tag_name: ${{ github.ref }} + # release_name: Release ${{ github.ref }} + # draft: true build_release: name: Build release @@ -99,68 +99,68 @@ jobs: cd ${{ matrix.path }} find "$(pwd)" - - name: Metadata - run: | - npm install @studiorack/cli -g - cp -v ./src/assets/* "${{ matrix.path }}" - studiorack validate "${{ matrix.path }}/**/*.{vst,vst3}" --files --json --txt --zip --summary + # - name: Metadata + # run: | + # npm install @studiorack/cli -g + # cp -v ./src/assets/* "${{ matrix.path }}" + # studiorack validate "${{ matrix.path }}/**/*.{vst,vst3}" --files --json --txt --zip --summary - - name: Upload - uses: actions/github-script@v3 - with: - github-token: ${{secrets.GITHUB_TOKEN}} - script: | - const path = require('path'); - const fs = require('fs'); - const release_id = '${{ needs.create_release.outputs.upload_id }}'; - for (let file of await fs.readdirSync('${{ matrix.path }}')) { - if (path.extname(file) === '.zip') { - console.log('upload zip', `${{ matrix.path }}/${file}`); - await github.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release_id, - name: `${path.basename(file, path.extname(file))}-${{ matrix.name }}.zip`, - data: await fs.readFileSync(`${{ matrix.path }}/${file}`) - }); - if ("${{ matrix.os }}" == 'macos-latest') { - console.log('upload png', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`); - await github.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release_id, - name: `${path.basename(file, path.extname(file))}.png`, - data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`) - }); - console.log('upload wav', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`); - await github.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release_id, - name: `${path.basename(file, path.extname(file))}.wav`, - data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`) - }); - } - } - } - - name: Upload metadata - if: matrix.os == 'macos-latest' - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create_release.outputs.upload_url }} - asset_path: ${{ matrix.path }}/plugins.json - asset_name: plugins.json - asset_content_type: application/json + # - name: Upload + # uses: actions/github-script@v3 + # with: + # github-token: ${{secrets.GITHUB_TOKEN}} + # script: | + # const path = require('path'); + # const fs = require('fs'); + # const release_id = '${{ needs.create_release.outputs.upload_id }}'; + # for (let file of await fs.readdirSync('${{ matrix.path }}')) { + # if (path.extname(file) === '.zip') { + # console.log('upload zip', `${{ matrix.path }}/${file}`); + # await github.repos.uploadReleaseAsset({ + # owner: context.repo.owner, + # repo: context.repo.repo, + # release_id: release_id, + # name: `${path.basename(file, path.extname(file))}-${{ matrix.name }}.zip`, + # data: await fs.readFileSync(`${{ matrix.path }}/${file}`) + # }); + # if ("${{ matrix.os }}" == 'macos-latest') { + # console.log('upload png', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`); + # await github.repos.uploadReleaseAsset({ + # owner: context.repo.owner, + # repo: context.repo.repo, + # release_id: release_id, + # name: `${path.basename(file, path.extname(file))}.png`, + # data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`) + # }); + # console.log('upload wav', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`); + # await github.repos.uploadReleaseAsset({ + # owner: context.repo.owner, + # repo: context.repo.repo, + # release_id: release_id, + # name: `${path.basename(file, path.extname(file))}.wav`, + # data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`) + # }); + # } + # } + # } + # - name: Upload metadata + # if: matrix.os == 'macos-latest' + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create_release.outputs.upload_url }} + # asset_path: ${{ matrix.path }}/plugins.json + # asset_name: plugins.json + # asset_content_type: application/json - publish_release: - name: Publish release - needs: [create_release, build_release] - runs-on: ubuntu-latest - steps: - - uses: eregon/publish-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - release_id: ${{ needs.create_release.outputs.upload_id }} + # publish_release: + # name: Publish release + # needs: [create_release, build_release] + # runs-on: ubuntu-latest + # steps: + # - uses: eregon/publish-release@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # release_id: ${{ needs.create_release.outputs.upload_id }} From 89f9c3b77d29bf0e9f9627a9500e20545c8af1ac Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 20 Aug 2022 21:03:00 -0700 Subject: [PATCH 16/20] asd --- .github/workflows/release.yml | 83 ----------------------------------- 1 file changed, 83 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dc168b0..48c69d3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,23 +12,6 @@ env: type: Release jobs: - # create_release: - # name: Create release - # runs-on: ubuntu-latest - # outputs: - # upload_id: ${{ steps.draft_release.outputs.id }} - # upload_url: ${{ steps.draft_release.outputs.upload_url }} - # steps: - # - name: Draft release - # id: draft_release - # uses: actions/create-release@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tag_name: ${{ github.ref }} - # release_name: Release ${{ github.ref }} - # draft: true - build_release: name: Build release needs: create_release @@ -98,69 +81,3 @@ jobs: run: | cd ${{ matrix.path }} find "$(pwd)" - - # - name: Metadata - # run: | - # npm install @studiorack/cli -g - # cp -v ./src/assets/* "${{ matrix.path }}" - # studiorack validate "${{ matrix.path }}/**/*.{vst,vst3}" --files --json --txt --zip --summary - - # - name: Upload - # uses: actions/github-script@v3 - # with: - # github-token: ${{secrets.GITHUB_TOKEN}} - # script: | - # const path = require('path'); - # const fs = require('fs'); - # const release_id = '${{ needs.create_release.outputs.upload_id }}'; - # for (let file of await fs.readdirSync('${{ matrix.path }}')) { - # if (path.extname(file) === '.zip') { - # console.log('upload zip', `${{ matrix.path }}/${file}`); - # await github.repos.uploadReleaseAsset({ - # owner: context.repo.owner, - # repo: context.repo.repo, - # release_id: release_id, - # name: `${path.basename(file, path.extname(file))}-${{ matrix.name }}.zip`, - # data: await fs.readFileSync(`${{ matrix.path }}/${file}`) - # }); - # if ("${{ matrix.os }}" == 'macos-latest') { - # console.log('upload png', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`); - # await github.repos.uploadReleaseAsset({ - # owner: context.repo.owner, - # repo: context.repo.repo, - # release_id: release_id, - # name: `${path.basename(file, path.extname(file))}.png`, - # data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`) - # }); - # console.log('upload wav', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`); - # await github.repos.uploadReleaseAsset({ - # owner: context.repo.owner, - # repo: context.repo.repo, - # release_id: release_id, - # name: `${path.basename(file, path.extname(file))}.wav`, - # data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`) - # }); - # } - # } - # } - # - name: Upload metadata - # if: matrix.os == 'macos-latest' - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create_release.outputs.upload_url }} - # asset_path: ${{ matrix.path }}/plugins.json - # asset_name: plugins.json - # asset_content_type: application/json - - # publish_release: - # name: Publish release - # needs: [create_release, build_release] - # runs-on: ubuntu-latest - # steps: - # - uses: eregon/publish-release@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # release_id: ${{ needs.create_release.outputs.upload_id }} From 5417f756ffb212fe41da4141fb000afab3545791 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 20 Aug 2022 21:04:10 -0700 Subject: [PATCH 17/20] Draft release --- .github/workflows/release.yml | 87 ++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48c69d3..34fa9f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,8 +3,8 @@ name: Release on: workflow_dispatch: push: - # tags: - # - "v*" + tags: + - "v*" env: dir_build: build @@ -12,6 +12,23 @@ env: type: Release jobs: + create_release: + name: Create release + runs-on: ubuntu-latest + outputs: + upload_id: ${{ steps.draft_release.outputs.id }} + upload_url: ${{ steps.draft_release.outputs.upload_url }} + steps: + - name: Draft release + id: draft_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: true + build_release: name: Build release needs: create_release @@ -81,3 +98,69 @@ jobs: run: | cd ${{ matrix.path }} find "$(pwd)" + + - name: Metadata + run: | + npm install @studiorack/cli -g + cp -v ./src/assets/* "${{ matrix.path }}" + studiorack validate "${{ matrix.path }}/**/*.{vst,vst3}" --files --json --txt --zip --summary + + - name: Upload + uses: actions/github-script@v3 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const path = require('path'); + const fs = require('fs'); + const release_id = '${{ needs.create_release.outputs.upload_id }}'; + for (let file of await fs.readdirSync('${{ matrix.path }}')) { + if (path.extname(file) === '.zip') { + console.log('upload zip', `${{ matrix.path }}/${file}`); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: `${path.basename(file, path.extname(file))}-${{ matrix.name }}.zip`, + data: await fs.readFileSync(`${{ matrix.path }}/${file}`) + }); + if ("${{ matrix.os }}" == 'macos-latest') { + console.log('upload png', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: `${path.basename(file, path.extname(file))}.png`, + data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.png`) + }); + console.log('upload wav', `${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: `${path.basename(file, path.extname(file))}.wav`, + data: await fs.readFileSync(`${{ matrix.path }}/${path.basename(file, path.extname(file))}.wav`) + }); + } + } + } + - name: Upload metadata + if: matrix.os == 'macos-latest' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: ${{ matrix.path }}/plugins.json + asset_name: plugins.json + asset_content_type: application/json + + publish_release: + name: Publish release + needs: [create_release, build_release] + runs-on: ubuntu-latest + steps: + - uses: eregon/publish-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + release_id: ${{ needs.create_release.outputs.upload_id }} From 8c8007c408c4f1b006b1379a959f11cc76f7347d Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 20 Aug 2022 21:10:49 -0700 Subject: [PATCH 18/20] Add fluidsynth binary --- .github/workflows/release.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34fa9f5..34ae90c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,9 @@ name: Release +defaults: + run: + shell: bash + on: workflow_dispatch: push: @@ -61,11 +65,11 @@ jobs: - 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-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev g++-7 g++-8 clang-7 clang-8 clang-9 clang-10 clang-tidy-10 + run: sudo apt-get update && sudo apt-get install fluidsynth cmake-data cmake libglib2.0-0 libsndfile-dev libasound2-dev libjack-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev g++-7 g++-8 clang-7 clang-8 clang-9 clang-10 clang-tidy-10 - name: Install macOS dependencies if: matrix.os == 'macos-latest' - run: brew install cmake pulseaudio portaudio jack dbus sdl2 + run: brew install fluidsynth cmake pulseaudio portaudio jack dbus sdl2 - name: Install Windows dependencies if: matrix.os == 'windows-latest' From f5b0a2d9e8d9179793e137ffd1b791c5044e4002 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sun, 21 Aug 2022 14:10:40 -0700 Subject: [PATCH 19/20] Build dependencies --- .github/workflows/release.yml | 145 +++++++++++++++++++++++++++------- 1 file changed, 115 insertions(+), 30 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34ae90c..96f52e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,6 @@ jobs: needs: create_release runs-on: ${{ matrix.os }} strategy: - fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] include: @@ -63,40 +62,126 @@ jobs: with: submodules: recursive - - name: Install Linux dependencies - if: matrix.os == 'ubuntu-latest' - run: sudo apt-get update && sudo apt-get install fluidsynth cmake-data cmake libglib2.0-0 libsndfile-dev libasound2-dev libjack-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev g++-7 g++-8 clang-7 clang-8 clang-9 clang-10 clang-tidy-10 - - - name: Install macOS dependencies - if: matrix.os == 'macos-latest' - run: brew install fluidsynth cmake pulseaudio portaudio jack dbus sdl2 + - name: Build JUCE dependency + run: | + cd JUCE + cmake -B cmake-build-install -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$HOME/juicydeps" + cmake --build cmake-build-install --target install - - name: Install Windows dependencies - if: matrix.os == 'windows-latest' + - name: Build Fluidsynth dependency run: | - mkdir D:/deps - cd D:/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 "/deps/bin" >> $GITHUB_PATH - - - name: Build plugins + cd fluidsynth + cmake -Bbuild -DCMAKE_INSTALL_PREFIX="$HOME/juicydeps" \ + -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=off \ + -Denable-lash=off \ + -Denable-alsa=off \ + -Denable-systemd=off \ + -DCMAKE_BUILD_TYPE=Release + cmake --build build --target install + + - name: Build JuicySF run: | cmake \ -G "${{ matrix.generator }}" \ - -DCMAKE_BUILD_TYPE="${{ env.type }}" \ - -DCMAKE_INSTALL_PREFIX=$HOME/fluidsynth_install \ - -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 JuicySFPlugin_VST3 + -DCMAKE_BUILD_TYPE=Release \ + -DJUCE_BUILD_EXAMPLES=OFF \ + -DJUCE_BUILD_EXTRAS=OFF \ + -S ./ \ + -B ./build + cmake --build ./build --config Release --target JuicySFPlugin_VST3 + + # - name: Install Linux dependencies + # if: matrix.os == 'ubuntu-latest' + # run: sudo apt-get update && sudo apt-get install fluidsynth cmake-data cmake libglib2.0-0 libsndfile-dev libasound2-dev libjack-dev portaudio19-dev libsdl2-dev libpulse-dev libdbus-1-dev libsystemd-dev libinstpatch-dev libreadline-dev g++-7 g++-8 clang-7 clang-8 clang-9 clang-10 clang-tidy-10 + + # - name: Install macOS dependencies + # if: matrix.os == 'macos-latest' + # run: brew install fluidsynth cmake pulseaudio portaudio jack dbus sdl2 + + # - name: Install Windows dependencies + # if: matrix.os == 'windows-latest' + # run: | + # mkdir D:/deps + # cd D:/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 "/deps/bin" >> $GITHUB_PATH + + # - name: Build plugins + # run: | + # cmake \ + # -G "${{ matrix.generator }}" \ + # -DCMAKE_BUILD_TYPE="${{ env.type }}" \ + # -DCMAKE_INSTALL_PREFIX=$HOME/fluidsynth_install \ + # -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 JuicySFPlugin_VST3 + + + # - name: Install Linux dependencies + # if: matrix.os == 'ubuntu-latest' + # run: | + # sudo apt update && sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev + # sudo apt-get update && sudo apt-get install autotools-dev automake autoconf libtool g++ autopoint make cmake bison flex yasm pkg-config libpulse-dev python3-dev gettext build-essential pkg-config curl libasound2-dev dpkg-dev debhelper build-essential devscripts fakeroot transfig gperf libdbus-glib-1-dev wget glib-networking libxtst-dev libxrandr-dev git intltool ccache python3-setuptools autogen maven make libreadline-dev + # export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH" + + # - name: Install macOS dependencies + # if: matrix.os == 'macos-latest' + # run: | + # brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + # brew install glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + # export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" + + # - name: Install Windows dependencies + # if: matrix.os == 'windows-latest' + # run: | + # choco install cmake curl zip unzip + # curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -o pkg-config.zip + # unzip pkg-config.zip + # ls pkg-config + # cp pkg-config/bin/pkg-config.exe C:\MinGW\bin + # curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -o gettext-runtime.zip + # unzip gettext-runtime.zip + # ls gettext-runtime + # cp gettext-runtime/bin/intl.dll C:\MinGW\bin + # curl -L http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -o glib.zip + # unzip glib.zip + # ls glib + # cp glib/bin/libglib-2.0-0.dll C:\MinGW\bin - name: List files generated run: | From 8870165a977670264911700745f6811c04d64692 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sun, 21 Aug 2022 14:15:36 -0700 Subject: [PATCH 20/20] Depens --- .github/workflows/release.yml | 60 +++++++++++++++++------------------ 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 96f52e8..b1a99d0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,6 +62,35 @@ jobs: with: submodules: recursive + - name: Install Linux dependencies + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update && sudo apt-get install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev + sudo apt-get update && sudo apt-get install autotools-dev automake autoconf libtool g++ autopoint make cmake bison flex yasm pkg-config libpulse-dev python3-dev gettext build-essential pkg-config curl libasound2-dev dpkg-dev debhelper build-essential devscripts fakeroot transfig gperf libdbus-glib-1-dev wget glib-networking libxtst-dev libxrandr-dev git intltool ccache python3-setuptools autogen maven make libreadline-dev + + - name: Install macOS dependencies + if: matrix.os == 'macos-latest' + run: | + brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + brew install glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp + + - name: Install Windows dependencies + if: matrix.os == 'windows-latest' + run: | + choco install cmake curl zip unzip + curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -o pkg-config.zip + unzip pkg-config.zip + ls pkg-config + cp pkg-config/bin/pkg-config.exe C:\MinGW\bin + curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -o gettext-runtime.zip + unzip gettext-runtime.zip + ls gettext-runtime + cp gettext-runtime/bin/intl.dll C:\MinGW\bin + curl -L http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -o glib.zip + unzip glib.zip + ls glib + cp glib/bin/libglib-2.0-0.dll C:\MinGW\bin + - name: Build JUCE dependency run: | cd JUCE @@ -152,37 +181,6 @@ jobs: # cmake --build ${{ env.dir_build }} --config ${{ env.type }} --target JuicySFPlugin_VST3 - # - name: Install Linux dependencies - # if: matrix.os == 'ubuntu-latest' - # run: | - # sudo apt update && sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev - # sudo apt-get update && sudo apt-get install autotools-dev automake autoconf libtool g++ autopoint make cmake bison flex yasm pkg-config libpulse-dev python3-dev gettext build-essential pkg-config curl libasound2-dev dpkg-dev debhelper build-essential devscripts fakeroot transfig gperf libdbus-glib-1-dev wget glib-networking libxtst-dev libxrandr-dev git intltool ccache python3-setuptools autogen maven make libreadline-dev - # export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH" - - # - name: Install macOS dependencies - # if: matrix.os == 'macos-latest' - # run: | - # brew install cmake readline glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp - # brew install glib gobject-introspection libsndfile pkg-config jack dbus-glib pulseaudio portaudio sdl2 libomp - # export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" - - # - name: Install Windows dependencies - # if: matrix.os == 'windows-latest' - # run: | - # choco install cmake curl zip unzip - # curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip -o pkg-config.zip - # unzip pkg-config.zip - # ls pkg-config - # cp pkg-config/bin/pkg-config.exe C:\MinGW\bin - # curl -L http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip -o gettext-runtime.zip - # unzip gettext-runtime.zip - # ls gettext-runtime - # cp gettext-runtime/bin/intl.dll C:\MinGW\bin - # curl -L http://ftp.acc.umu.se/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip -o glib.zip - # unzip glib.zip - # ls glib - # cp glib/bin/libglib-2.0-0.dll C:\MinGW\bin - - name: List files generated run: | cd ${{ matrix.path }}