File cabbage.spec of Package cabbage

#
# 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.9.0
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

%if 0%{?suse_version} > 1500
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
%endif

%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
openSUSE Build Service is sponsored by