2023-12-30 11:20:33 +00:00
|
|
|
#!/bin/bash -e
|
|
|
|
|
|
|
|
PLUGIN="osci-render"
|
|
|
|
|
|
|
|
# linux specific stiff
|
|
|
|
if [ $OS = "linux" ]; then
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install clang git ladspa-sdk freeglut3-dev g++ libasound2-dev libcurl4-openssl-dev libfreetype6-dev libjack-jackd2-dev libx11-dev libxcomposite-dev libxcursor-dev libxinerama-dev libxrandr-dev mesa-common-dev webkit2gtk-4.0 juce-tools xvfb
|
|
|
|
fi
|
|
|
|
|
|
|
|
ROOT=$(cd "$(dirname "$0")/.."; pwd)
|
|
|
|
cd "$ROOT"
|
|
|
|
echo "$ROOT"
|
|
|
|
rm -Rf bin
|
|
|
|
mkdir bin
|
|
|
|
|
|
|
|
BRANCH=${GITHUB_REF##*/}
|
|
|
|
echo "$BRANCH"
|
|
|
|
|
|
|
|
cd "$ROOT/ci"
|
|
|
|
rm -Rf bin
|
|
|
|
mkdir bin
|
|
|
|
|
|
|
|
# Get the Projucer
|
|
|
|
cd "$ROOT/ci/bin"
|
|
|
|
PROJUCER_OS=$OS
|
|
|
|
if [ "$OS" = "win" ]; then
|
|
|
|
PROJUCER_OS="windows"
|
|
|
|
elif [ "$OS" = "mac" ]; then
|
|
|
|
PROJUCER_OS="osx"
|
|
|
|
fi
|
|
|
|
|
2023-12-30 11:40:23 +00:00
|
|
|
curl -s -S -L "https://api.juce.com/api/v1/download/juce/latest/$PROJUCER_OS" -o Projucer.zip
|
2023-12-30 11:20:33 +00:00
|
|
|
unzip Projucer.zip
|
|
|
|
|
2023-12-30 11:53:49 +00:00
|
|
|
# Set Projucer path based on OS
|
2023-12-30 11:20:33 +00:00
|
|
|
if [ "$OS" = "mac" ]; then
|
2023-12-30 11:53:49 +00:00
|
|
|
PROJUCER_PATH="$ROOT/ci/bin/JUCE/Projucer.app/Contents/MacOS/Projucer"
|
2023-12-30 11:20:33 +00:00
|
|
|
elif [ "$OS" = "linux" ]; then
|
2023-12-30 11:53:49 +00:00
|
|
|
PROJUCER_PATH="$ROOT/ci/bin/JUCE/Projucer"
|
2023-12-30 11:20:33 +00:00
|
|
|
else
|
2023-12-30 11:53:49 +00:00
|
|
|
PROJUCER_PATH="$ROOT/ci/bin/JUCE/Projucer.exe"
|
2023-12-30 11:20:33 +00:00
|
|
|
fi
|
|
|
|
|
2023-12-30 11:53:49 +00:00
|
|
|
# Set global path
|
|
|
|
GLOBAL_PATH_COMMAND="$PROJUCER_PATH --set-global-search-path $PROJUCER_OS 'defaultJuceModulePath' '$ROOT/ci/bin/JUCE/modules'"
|
|
|
|
eval "$GLOBAL_PATH_COMMAND"
|
|
|
|
|
|
|
|
# Resave jucer file
|
|
|
|
RESAVE_COMMAND="$PROJUCER_PATH --resave '$ROOT/$PLUGIN.jucer'"
|
|
|
|
eval "$RESAVE_COMMAND"
|
|
|
|
|
2023-12-30 11:20:33 +00:00
|
|
|
# Build mac version
|
|
|
|
if [ "$OS" = "mac" ]; then
|
2023-12-30 11:43:11 +00:00
|
|
|
cd "$ROOT/Builds/MacOSX"
|
2023-12-30 11:20:33 +00:00
|
|
|
xcodebuild -configuration Release || exit 1
|
|
|
|
|
|
|
|
cp -R ~/Library/Audio/Plug-Ins/VST3/$PLUGIN.vst3 "$ROOT/ci/bin"
|
|
|
|
cp -R ~/Library/Audio/Plug-Ins/Components/$PLUGIN.component "$ROOT/ci/bin"
|
|
|
|
|
|
|
|
cd "$ROOT/ci/bin"
|
|
|
|
|
|
|
|
zip -r ${PLUGIN}_Mac.zip $PLUGIN.vst3 $PLUGIN.component
|
|
|
|
cp ${PLUGIN}_Mac.zip "$ROOT/bin"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Build linux version
|
|
|
|
if [ "$OS" = "linux" ]; then
|
2023-12-30 11:43:11 +00:00
|
|
|
cd "$ROOT/Builds/LinuxMakefile"
|
2023-12-30 11:20:33 +00:00
|
|
|
make CONFIG=Release
|
|
|
|
|
|
|
|
cp -r ./build/$PLUGIN.vst3 "$ROOT/ci/bin"
|
|
|
|
|
|
|
|
cd "$ROOT/ci/bin"
|
|
|
|
|
|
|
|
# Upload
|
|
|
|
cd "$ROOT/ci/bin"
|
|
|
|
zip -r ${PLUGIN}_Linux.zip $PLUGIN.vst3
|
|
|
|
cp ${PLUGIN}_Linux.zip "$ROOT/bin"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Build Win version
|
|
|
|
if [ "$OS" = "win" ]; then
|
|
|
|
VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe"
|
|
|
|
|
|
|
|
MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe")
|
|
|
|
echo $MSBUILD_EXE
|
|
|
|
|
2023-12-30 11:43:11 +00:00
|
|
|
cd "$ROOT/Builds/VisualStudio2022"
|
2023-12-30 11:20:33 +00:00
|
|
|
"$MSBUILD_EXE" "$PLUGIN.sln" "//p:VisualStudioVersion=16.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:Platform=x64" "//p:PreferredToolArchitecture=x64"
|
|
|
|
|
|
|
|
cd "$ROOT/ci/bin"
|
|
|
|
mkdir -p VST3
|
|
|
|
|
2023-12-30 11:43:11 +00:00
|
|
|
cp "$ROOT/Builds/VisualStudio2022/x64/Release/VST3/${PLUGIN}.vst3" ${PLUGIN}.vst3
|
2023-12-30 11:20:33 +00:00
|
|
|
|
|
|
|
7z a ${PLUGIN}_Win.zip ${PLUGIN}.vst3
|
|
|
|
cp ${PLUGIN}_Win.zip "$ROOT/bin"
|
|
|
|
fi
|