cabbage: patch for gcc-11, fix plugins path

This commit is contained in:
Đoàn Trần Công Danh 2022-12-03 17:23:29 +07:00
parent eecf524f08
commit b77711f7af
3 changed files with 43 additions and 22 deletions

View File

@ -0,0 +1,13 @@
Index: cabbage-2.5.0/JUCE/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp
===================================================================
--- cabbage-2.5.0.orig/JUCE/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp
+++ cabbage-2.5.0/JUCE/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp
@@ -24,6 +24,8 @@
==============================================================================
*/
+#include <array>
+
namespace juce
{

View File

@ -0,0 +1,13 @@
Index: cabbage-2.5.0/cabbage/Source/Utilities/CabbageExportPlugin.cpp
===================================================================
--- cabbage-2.5.0.orig/cabbage/Source/Utilities/CabbageExportPlugin.cpp
+++ cabbage-2.5.0/cabbage/Source/Utilities/CabbageExportPlugin.cpp
@@ -84,7 +84,7 @@ void PluginExporter::exportPlugin (Strin
}
else if (type == "Standalone")
{
- pluginFilename = currentApplicationDirectory + "/CabbagePlugin." + fileExtension;
+ pluginFilename = currentApplicationDirectory + "/../lib/vst/CabbagePlugin." + fileExtension;
}
File VSTData (pluginFilename);

View File

@ -1,16 +1,15 @@
# Template file for 'cabbage' # Template file for 'cabbage'
pkgname=cabbage pkgname=cabbage
version=2.5.0 version=2.5.0
revision=1 revision=2
# specified in buildLinux.sh # specified in buildLinux.sh
_jucever=5.4.7 _jucever=5.4.7
_vstsdkver=3611_22_10_2018_build_34 _vstsdkver=3611_22_10_2018_build_34
create_wrksrc=yes build_wrksrc="cabbage"
build_wrksrc="${pkgname}-${version}"
hostmakedepends="pkg-config xorg-server-xvfb" hostmakedepends="pkg-config xorg-server-xvfb"
makedepends="libfreeglut-devel libcurl-devel jack-devel libXcomposite-devel makedepends="libfreeglut-devel libcurl-devel jack-devel libXcomposite-devel
libXrandr-devel libXcursor-devel libX11-devel libXinerama-devel MesaLib-devel libXrandr-devel libXcursor-devel libX11-devel libXinerama-devel MesaLib-devel
gtk+3-devel webkit2gtk-devel csound alsa-lib-devel libsndfile-devel" gtk+3-devel webkit2gtk-devel csound alsa-lib-devel libsndfile-devel xvfb-run"
depends="csound" depends="csound"
short_desc="Framework for audio software development" short_desc="Framework for audio software development"
maintainer="Olga U <me@laserbat.pw>" maintainer="Olga U <me@laserbat.pw>"
@ -65,17 +64,17 @@ Projucer() {
# ~/SDKs/ (path hardcoded) # ~/SDKs/ (path hardcoded)
# TODO: use xvfb-run script for testing # TODO: use xvfb-run script for testing
Xvfb :999 & xvfb-run \
XVFB_PID=$! "${wrksrc}/JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer" "$@"
HOME=${wrksrc} DISPLAY=":999" "${wrksrc}/JUCE-${_jucever}/extras/Projucer/Builds/LinuxMakefile/build/Projucer" "$@"
kill $XVFB_PID || true
} }
post_extract() { post_extract() {
mkdir SDKs mkdir SDKs
mv VST_SDK SDKs mv VST_SDK SDKs
mv vst2.x SDKs/VST_SDK/VST3_SDK/pluginterfaces mv vst2.x SDKs/VST_SDK/VST3_SDK/pluginterfaces
cd "${wrksrc}/cabbage-${version}" mv cabbage-${version} cabbage
mv JUCE-${_jucever} JUCE
cd "${wrksrc}/cabbage"
# There are lots of hardcoded paths that need to be rewritten # There are lots of hardcoded paths that need to be rewritten
vsed -e 's@sourcecode/@@' -i CabbageLite.jucer vsed -e 's@sourcecode/@@' -i CabbageLite.jucer
@ -83,7 +82,6 @@ post_extract() {
for f in *jucer; do for f in *jucer; do
vsed -e "s@/usr/local/include/csound@/usr/include/csound@g" \ vsed -e "s@/usr/local/include/csound@/usr/include/csound@g" \
-e "s@/usr/local/lib@/usr/lib@g" \ -e "s@/usr/local/lib@/usr/lib@g" \
-e "s@../JUCE@../JUCE-${_jucever}@" \
-i "$f" -i "$f"
done done
@ -93,48 +91,45 @@ post_extract() {
vsed -e '/opcodeFile\ +=/s#/#/../share/doc/cabbage/#' \ vsed -e '/opcodeFile\ +=/s#/#/../share/doc/cabbage/#' \
-i Source/CodeEditor/CabbageCodeEditor.cpp -i Source/CodeEditor/CabbageCodeEditor.cpp
vsed -e '/CabbagePlugin\(Synth\|Effect\)/s#"/#"/../lib/vst/#' \
-i Source/Utilities/CabbageExportPlugin.cpp
# Fix compilation on i686 # Fix compilation on i686
vsed -e 's/__sigemptyset/sigemptyset/' \ vsed -e 's/__sigemptyset/sigemptyset/' \
-i ../JUCE-${_jucever}/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c -i ../JUCE/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c
vsed -e "s/JUCER_ENABLE_GPL_MODE 0/JUCER_ENABLE_GPL_MODE 1/" \ vsed -e "s/JUCER_ENABLE_GPL_MODE 0/JUCER_ENABLE_GPL_MODE 1/" \
-i ../JUCE-${_jucever}/extras/Projucer/JuceLibraryCode/AppConfig.h -i ../JUCE/extras/Projucer/JuceLibraryCode/AppConfig.h
} }
do_build() { do_build() {
cd "${wrksrc}/JUCE-${_jucever}/extras/Projucer/Builds/LinuxMakefile/" local oldhome=$HOME
HOME=$wrksrc
cd "${wrksrc}/JUCE/extras/Projucer/Builds/LinuxMakefile/"
make ${makejobs} TARGET_ARCH="${_tarch}" make ${makejobs} TARGET_ARCH="${_tarch}"
cd "${wrksrc}/cabbage-${version}/Builds/LinuxMakefile" cd "${wrksrc}/cabbage/Builds/LinuxMakefile"
Projucer --resave ../../CabbageIDE.jucer Projucer --resave ../../CabbageIDE.jucer
mv Makefile MakeCabbageIDE mv Makefile MakeCabbageIDE
vsed -i MakeCabbageIDE -e "s@\$(HOME)@${wrksrc}@"
make -f MakeCabbageIDE ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" make -f MakeCabbageIDE ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}"
Projucer --resave ../../CabbagePlugin.jucer Projucer --resave ../../CabbagePlugin.jucer
mv Makefile MakePluginEffect mv Makefile MakePluginEffect
vsed -i MakePluginEffect -e "s@\$(HOME)@${wrksrc}@"
make -f MakePluginEffect ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" make -f MakePluginEffect ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}"
mv ./build/CabbagePlugin.so ./build/CabbagePluginEffect.so mv ./build/CabbagePlugin.so ./build/CabbagePluginEffect.so
Projucer --resave ../../CabbagePluginSynth.jucer Projucer --resave ../../CabbagePluginSynth.jucer
mv Makefile MakePluginSynth mv Makefile MakePluginSynth
vsed -i MakePluginSynth -e "s@\$(HOME)@${wrksrc}@"
make -f MakePluginSynth ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" make -f MakePluginSynth ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}"
mv ./build/CabbagePlugin.so ./build/CabbagePluginSynth.so mv ./build/CabbagePlugin.so ./build/CabbagePluginSynth.so
Projucer --resave ../../CabbageLite.jucer Projucer --resave ../../CabbageLite.jucer
cp -r ../../../JUCE-${_jucever}/modules/juce_audio_plugin_client/ ../../JuceLibraryCode/modules/ cp -r ../../../JUCE/modules/juce_audio_plugin_client/ ../../JuceLibraryCode/modules/
mv Makefile MakeCabbageLite mv Makefile MakeCabbageLite
make -f MakeCabbageLite ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}" make -f MakeCabbageLite ${makejobs} CONFIG=Release TARGET_ARCH="${_tarch}"
HOME=$oldhome
} }
do_install() { do_install() {
cd "${wrksrc}/cabbage-${version}/Builds/LinuxMakefile" cd "${wrksrc}/cabbage/Builds/LinuxMakefile"
find ../../Examples -name '.DS_Store' -delete find ../../Examples -name '.DS_Store' -delete
find ../../Examples -name '*_Log.txt' -delete find ../../Examples -name '*_Log.txt' -delete