Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Mac and Windows builds to github actions #228

Merged
merged 10 commits into from
Feb 11, 2025
74 changes: 67 additions & 7 deletions .github/workflows/ControlGris-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,6 @@ jobs:
libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxinerama-dev libxrandr-dev \
mesa-common-dev libjack-dev

- name: Install dependencies
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a duplication from the step right above

run: |
sudo apt-get update
sudo apt-get install -y clang-18 ladspa-sdk freeglut3-dev libasound2-dev libcurl4-openssl-dev \
libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxinerama-dev libxrandr-dev \
mesa-common-dev libjack-dev

- name: Set global JUCE search paths
run: JUCE/Projucer --set-global-search-path linux defaultJuceModulePath /home/runner/work/ControlGris/ControlGris/JUCE/modules

Expand All @@ -59,3 +52,70 @@ jobs:
with:
name: ControlGris-Build
path: Builds/LinuxMakefile/build/*

Build-macOS:
runs-on: macos-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2

- name: download JUCE
run: curl -L https://github.com/juce-framework/JUCE/releases/download/7.0.1/juce-7.0.1-osx.zip --output JUCE.zip

- name: unpack JUCE
run: unzip JUCE.zip

- name: set global JUCE search paths
run: JUCE/Projucer.app/Contents/MacOS/Projucer --set-global-search-path osx defaultJuceModulePath /Users/runner/work/ControlGris/ControlGris/JUCE/modules

- name: generate Xcode project
run: JUCE/Projucer.app/Contents/MacOS/Projucer --resave ControlGris.jucer

- name: build
run: xcodebuild -project Builds/MacOSX/ControlGris.xcodeproj -scheme "ControlGris - Standalone Plugin" -configuration Release

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: ControlGris-Build-macOS
path: Builds/MacOSX/build/*

Build-Windows:
runs-on: windows-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2

- name: download JUCE
run: curl -L https://github.com/juce-framework/JUCE/releases/download/7.0.1/juce-7.0.1-windows.zip --output JUCE.zip

- name: unpack JUCE
run: Expand-Archive -Path JUCE.zip -DestinationPath .

- name: set global JUCE search paths
run: JUCE/Projucer --set-global-search-path windows defaultJuceModulePath ${{ github.workspace }}\JUCE\modules

- name: generate Visual Studio project
run: JUCE/Projucer --resave ControlGris.jucer

- name: Remove VST3 copy step from .vcxproj #this copy step is useless on the pipeline, and causes it to fail
run: sed -i '/<PostBuildEvent>/,/<\/PostBuildEvent>/d' Builds/VisualStudio2022/ControlGris_VST3.vcxproj
shell: bash

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2

- name: build shared code
run: msbuild Builds/VisualStudio2022/ControlGris_SharedCode.vcxproj -p:Configuration=Release -p:Platform=x64

- name: build standalone
run: msbuild Builds/VisualStudio2022/ControlGris_StandalonePlugin.vcxproj -p:Configuration=Release -p:Platform=x64

- name: build VST3
run: msbuild Builds/VisualStudio2022/ControlGris_VST3.vcxproj -p:Configuration=Release -p:Platform=x64

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: ControlGris-Build-Windows
path: Builds/VisualStudio2022/x64/Release/*
10 changes: 6 additions & 4 deletions ControlGris.jucer
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,9 @@
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" targetName="ControlGris" osxArchitecture="Native"
auBinaryLocation="$(HOME)/Library/Audio/Plug-Ins/Components/"
enablePluginBinaryCopyStep="0"/>
enablePluginBinaryCopyStep="1"/>
<CONFIGURATION isDebug="0" name="Release" targetName="ControlGris" osxArchitecture="Native"
recommendedWarnings="LLVM" enablePluginBinaryCopyStep="0"/>
recommendedWarnings="LLVM" enablePluginBinaryCopyStep="1"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../../JUCE/modules"/>
Expand Down Expand Up @@ -202,8 +202,10 @@
</LINUX_MAKE>
<VS2022 targetFolder="Builds/VisualStudio2022">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" enablePluginBinaryCopyStep="1" vst3BinaryLocation="C:\Program Files\Common Files\VST3"/>
<CONFIGURATION isDebug="0" name="Release" enablePluginBinaryCopyStep="1" vst3BinaryLocation="C:\Program Files\Common Files\VST3"/>
<CONFIGURATION isDebug="1" name="Debug" vst3BinaryLocation="C:\Program Files\Common Files\VST3"
enablePluginBinaryCopyStep="1"/>
<CONFIGURATION isDebug="0" name="Release" vst3BinaryLocation="C:\Program Files\Common Files\VST3"
enablePluginBinaryCopyStep="1"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_audio_basics"/>
Expand Down
Loading