osci-render/ci/build.sh

100 wiersze
2.6 KiB
Bash
Czysty Zwykły widok Historia

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
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