File cabbage.spec of Package cabbage-git
#
# spec file for package cabbage
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: cabbage
Version: 2.10.0+git.0.7777cd6
Release: 0
Summary: A framework for audio software development
License: GPL-3.0-only
Group: Productivity/Multimedia/Sound/Utilities
URL: https://github.com/rorywalsh/cabbage/
Source0: https://github.com/rorywalsh/cabbage/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source99: juce_VSTInterface.h
Patch99: cabbage-vst.patch
BuildRequires: gcc gcc-c++
BuildRequires: cmake
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(jack)
BuildRequires: Mesa-libGL-devel
BuildRequires: libXrandr-devel
BuildRequires: libXcursor-devel
BuildRequires: libcurl-devel
BuildRequires: ladspa-devel
BuildRequires: pkgconfig(webkit2gtk-4.1)
BuildRequires: csound-devel >= 6.15.0
BuildRequires: git
%description
Cabbage is a framework for audio software development.
Using simple markup text and the Csound audio synthesis language users can target Windows, OSX, Linux and Android with a single piece of source code.
https://cabbageaudio.com/
%package git
Summary: A framework for audio software development
Group: Productivity/Multimedia/Sound/Midi
Conflicts: %{name}
%description git
Cabbage is a framework for audio software development.
Using simple markup text and the Csound audio synthesis language users can target Windows, OSX, Linux and Android with a single piece of source code.
https://cabbageaudio.com/
%package git-examples
Summary: Example plugins made in Cabbage
Group: Productivity/Multimedia/Sound/Midi
Buildarch: noarch
Conflicts: %{name}-examples
%description git-examples
Example plugins made in Cabbage
%prep
%autosetup -p2
cp %{SOURCE99} JUCE/modules/juce_audio_processors/format_types/
git apply ./patches/StandaloneWrapper.patch
git apply ./patches/UtilityWrapper.patch
git apply ./patches/LinuxFile.patch
sed -i -e 's#"$ENV{HOME}/SDKs/VST_SDK/VST3_SDK"#/usr/include#' CMakeLists.txt
sed -i 's/webkit2gtk-4.0/webkit2gtk-4.1/' JUCE/extras/Build/CMake/JUCEUtils.cmake
sed -i 's/webkit2gtk-4.0/webkit2gtk-4.1/' JUCE/extras/Projucer/Source/ProjectSaving/jucer_ProjectExporter.cpp
sed -i 's/webkit2gtk-4.0/webkit2gtk-4.1/' CMakeLists.txt
%build
%define _lto_cflags %{nil}
#rm -rf JUCE
#ln -s /usr/src/JUCE-6.[1-9].[1-9] JUCE
cmake -B cmake-build -DCMAKE_BUILD_TYPE=Release -DPROJECT_NAME="Cabbage" -DJucePlugin_Manufacturer="CabbageAudio" -DJucePlugin_Desc="CabbagePlugin"
cmake --build cmake-build %{?_smp_mflags}
cmake -B cmake-build -DCMAKE_BUILD_TYPE=Release -DPROJECT_NAME="CabbagePluginEffect" -DJucePlugin_Manufacturer="CabbageAudio" -DJucePlugin_Desc="CabbagePlugin"
cmake --build cmake-build %{?_smp_mflags}
cmake -B cmake-build -DCMAKE_BUILD_TYPE=Release -DPROJECT_NAME="CabbagePluginSynth" -DJucePlugin_Manufacturer="CabbageAudio" -DJucePlugin_Desc="CabbagePlugin"
cmake --build cmake-build %{?_smp_mflags}
cmake -B cmake-build -DCMAKE_BUILD_TYPE=Release -DPROJECT_NAME="CabbagePluginMidiEffect" -DJucePlugin_Manufacturer="CabbageAudio" -DJucePlugin_Desc="CabbagePlugin"
cmake --build cmake-build %{?_smp_mflags}
cmake -B cmake-build -DCMAKE_BUILD_TYPE=Release -DPROJECT_NAME="CLIConverter" -DJucePlugin_Manufacturer="CabbageAudio" -DJucePlugin_Desc="CabbagePlugin"
cmake --build cmake-build %{?_smp_mflags}
%install
mkdir -p %{buildroot}%{_bindir}
cp ./cmake-build/Cabbage_artefacts/Release/Cabbage %{buildroot}%{_bindir}/
cp ./cmake-build/CLIConverter_artefacts/Release/CLIConverter %{buildroot}%{_bindir}/
cp ./cmake-build/CabbagePluginEffect_artefacts/Release/VST/libCabbagePluginEffect.so %{buildroot}%{_bindir}/CabbagePluginEffect.so
cp -r ./cmake-build/CabbagePluginEffect_artefacts/Release/VST3/CabbagePluginEffect.vst3 %{buildroot}%{_bindir}/
cp ./cmake-build/CabbagePluginSynth_artefacts/Release/Standalone/CabbagePluginSynth %{buildroot}%{_bindir}/CabbagePlugin
cp ./cmake-build/CabbagePluginSynth_artefacts/Release/VST/libCabbagePluginSynth.so %{buildroot}%{_bindir}/CabbagePluginSynth.so
cp -r ./cmake-build/CabbagePluginSynth_artefacts/Release/VST3/CabbagePluginSynth.vst3 %{buildroot}%{_bindir}/
cp ./cmake-build/CabbagePluginMidiEffect_artefacts/Release/VST/libCabbagePluginMidiEffect.so %{buildroot}%{_bindir}/CabbagePluginMidiEffect.so
cp -r ./cmake-build/CabbagePluginMidiEffect_artefacts/Release/VST3/CabbagePluginMidiEffect.vst3 %{buildroot}%{_bindir}/
mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/512x512/apps
cp ./Images/cabbage.png %{buildroot}/%{_datadir}/icons/hicolor/512x512/apps/
mkdir -p %{buildroot}/%{_datadir}/applications
install ./Installers/Linux/Cabbage.desktop %{buildroot}/%{_datadir}/applications/
mkdir -p %{buildroot}/%{_docdir}/%{name}/Examples
cp -rf ./Examples %{buildroot}/%{_docdir}/%{name}/
mkdir -p %{buildroot}/%{_datadir}/%{name}/Themes
cp -rf ./Themes %{buildroot}/%{_datadir}/%{name}/
find %{buildroot}/%{_datadir} -type f -exec chmod -x '{}' \;
find %{buildroot}/%{_datadir} -name .DS_Store -exec rm '{}' \;
%files git
%{_bindir}/*
%dir %{_datadir}/applications
%{_datadir}/applications/*.desktop
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/Themes
%{_datadir}/%{name}/*
%dir %{_datadir}/icons
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/512x512
%dir %{_datadir}/icons/hicolor/512x512/apps
%{_datadir}/icons/hicolor/512x512/apps/*
%files git-examples
%dir %{_docdir}/%{name}
%dir %{_docdir}/%{name}/Examples
%{_docdir}/%{name}/Examples/*
%changelog