From 80bc0087106075af19e952f7e9dbba5b48686b0d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Apr 2026 07:57:14 +0000 Subject: [PATCH 1/2] ci: add GitHub Actions workflow to build VST3 for x86_64 and aarch64 Linux Agent-Logs-Url: https://github.com/probonopd/juicysfplugin/sessions/cb11c309-4f8c-40ba-b139-36dfcd83f3b2 Co-authored-by: probonopd <2480569+probonopd@users.noreply.github.com> --- .github/workflows/build-vst3-linux.yml | 91 ++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/build-vst3-linux.yml diff --git a/.github/workflows/build-vst3-linux.yml b/.github/workflows/build-vst3-linux.yml new file mode 100644 index 0000000..b2aa770 --- /dev/null +++ b/.github/workflows/build-vst3-linux.yml @@ -0,0 +1,91 @@ +name: Build VST3 Linux + +on: + push: + branches: ["**"] + pull_request: + workflow_dispatch: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - arch: x86_64 + runner: ubuntu-24.04 + - arch: aarch64 + runner: ubuntu-24.04-arm + + runs-on: ${{ matrix.runner }} + name: VST3 Linux ${{ matrix.arch }} + + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install -y \ + cmake ninja-build build-essential pkg-config git \ + libfluidsynth-dev \ + libasound2-dev \ + libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev \ + libgl-dev libfreetype-dev libfontconfig1-dev \ + libharfbuzz-dev + + - name: Cache JUCE + id: cache-juce + uses: actions/cache@v4 + with: + path: /opt/JUCE + key: juce-7.0.12-${{ matrix.arch }} + + - name: Clone and install JUCE + if: steps.cache-juce.outputs.cache-hit != 'true' + run: | + git clone --depth 1 --branch 7.0.12 \ + https://github.com/juce-framework/JUCE.git /tmp/JUCE + cmake -B /tmp/JUCE/build -S /tmp/JUCE \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/opt/JUCE \ + -DJUCE_BUILD_EXTRAS=OFF \ + -DJUCE_BUILD_EXAMPLES=OFF + cmake --build /tmp/JUCE/build --target install + + - name: Configure CMake + run: | + cmake -B build -S . \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH=/opt/JUCE \ + -DBUILD_SHARED_LIBS=ON \ + -DJUCE_COPY_PLUGIN_AFTER_BUILD=FALSE + + - name: Build VST3 + run: cmake --build build --target JuicySFPlugin_VST3 --parallel + + - name: Locate VST3 binary + id: locate + run: | + SO=$(find build -name "*.so" -path "*/VST3/*" | head -1) + echo "so=$SO" >> "$GITHUB_OUTPUT" + ls -lh "$SO" + + - name: Verify artifact size ≥ 1 MB + run: | + SO="${{ steps.locate.outputs.so }}" + SIZE=$(stat -c%s "$SO") + echo "Size: $SIZE bytes" + if [ "$SIZE" -lt 1048576 ]; then + echo "ERROR: artifact is smaller than 1 MB ($SIZE bytes)" + exit 1 + fi + + - name: Upload VST3 artifact + uses: actions/upload-artifact@v4 + with: + name: juicysfplugin-vst3-linux-${{ matrix.arch }} + path: build/**/*.vst3 + if-no-files-found: error From 93bf9ca0f3487b4ab2ea8e114e5db6193ae0ddcd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Apr 2026 08:07:57 +0000 Subject: [PATCH 2/2] fix: const_cast for fluid_synth_process write pointer compatibility Agent-Logs-Url: https://github.com/probonopd/juicysfplugin/sessions/cb11c309-4f8c-40ba-b139-36dfcd83f3b2 Co-authored-by: probonopd <2480569+probonopd@users.noreply.github.com> --- Source/FluidSynthModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/FluidSynthModel.cpp b/Source/FluidSynthModel.cpp index c1eced3..7a0880e 100644 --- a/Source/FluidSynthModel.cpp +++ b/Source/FluidSynthModel.cpp @@ -431,7 +431,7 @@ void FluidSynthModel::processBlock(AudioBuffer& buffer, MidiBuffer& midiM 0, nullptr, buffer.getNumChannels(), - buffer.getArrayOfWritePointers()); + const_cast(buffer.getArrayOfWritePointers())); } int FluidSynthModel::getNumPrograms()