File surge-xt.spec of Package surge-xt

#
# spec file for package surge xt
#
# 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:           surge-xt
Version:        1.3.0
Release:        0
Summary:        Subtractive hybrid synthesizer virtual instrument
License:        GPL-3.0-only
Group:          Productivity/Multimedia/Sound/Midi
URL:            https://surge-synth-team.org/
Source0:        %{name}-%{version}.tar.xz
Source9:        juce_VSTInterface.h
Patch0:         suppress-errors.patch
Patch1:         include-cstdint.patch
Patch2:         fix-LV2-headless-build.patch
Patch99:        surge-juce-vst2.patch
BuildRequires:  cmake >= 3.22
%if 0%{?is_opensuse} && 0%{?suse_version} <= 1600
BuildRequires:  gcc12
BuildRequires:  gcc12-c++
%else
BuildRequires:  gcc-c++
%endif
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xinerama)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  Mesa-libGL-devel
BuildRequires:  libXrandr-devel
BuildRequires:  libXcursor-devel
BuildRequires:  libjack-devel
BuildRequires:  libcurl-devel
Requires:       %{name}-common

%description

Subtractive hybrid synthesizer virtual instrument.
Surge XT includes VST3 instrument formats for use in compatible hosts and a standalone executable

%package common
Summary:       Common files for surge-xt
BuildArch:     noarch
%description common
Common files for surge-xt (Presets, Skins, Wavetables)

%package -n vst3-%{name}
Summary:       Subtractive hybrid synthesizer virtual instrument (VST3)
Requires:      %{name}-common
%description -n vst3-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes VST3 instrument formats for use in compatible hosts and a standalone executable

%package -n vst-%{name}
Summary:        Subtractive hybrid synthesizer virtual instrument (VST)
Requires:       %{name}-common
%description -n vst-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes VST3 instrument formats for use in compatible hosts and a standalone executable

%package -n clap-%{name}
Summary:       Subtractive hybrid synthesizer virtual instrument (CLAP)
Requires:      %{name}-common
%description -n clap-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes VST3 instrument formats for use in compatible hosts and a standalone executable

%package -n lv2-%{name}
Summary:       Subtractive hybrid synthesizer virtual instrument (LV2)
Requires:      %{name}-common
%description -n lv2-%{name}
Subtractive hybrid synthesizer virtual instrument.
Surge XT includes VST3 instrument formats for use in compatible hosts and a standalone executable

%package fx
Summary:        Surge XT Effects Plugin
Requires:       %{name}-common
%description fx
Surge XT Effects Plugin

%package -n vst-%{name}-fx
Summary:        Surge XT Effects Plugin (VST)
Requires:       %{name}-common
%description -n vst-%{name}-fx
Surge XT Effects Plugin

%package -n vst3-%{name}-fx
Summary:        Surge XT Effects Plugin (VST3)
Requires:       %{name}-common
%description -n vst3-%{name}-fx
Surge XT Effects Plugin

%package -n clap-%{name}-fx
Summary:        Surge XT Effects Plugin (CLAP)
Requires:       %{name}-common
%description -n clap-%{name}-fx
Surge XT Effects Plugin

%package -n lv2-%{name}-fx
Summary:        Surge XT Effects Plugin (LV2)
Requires:       %{name}-common
%description -n lv2-%{name}-fx
Surge XT Effects Plugin

%prep
%setup -q
%autopatch -p1
cp %{SOURCE9} libs/JUCE/modules/juce_audio_processors/format_types/

%build
export VST2SDK_DIR=/usr/include
cmake -B cmake-build -DCMAKE_INSTALL_PREFIX=%{buildroot}/%{_prefix} \
                     -DCMAKE_BUILD_TYPE=Release \
                     -DSURGE_BUILD_LV2=TRUE \
%if 0%{?is_opensuse} && 0%{?suse_version} <= 1600
                     -DCMAKE_CXX_COMPILER=g++-12
%endif

cmake --build cmake-build --config Release %{?_smp_mflags}

%install
cmake --install cmake-build

mkdir -p %{buildroot}/%{_libdir}/vst
cp ./cmake-build/surge_xt_products/libSurge*.so %{buildroot}/%{_libdir}/vst/

%files
"%{_bindir}/Surge XT"
%{_bindir}/surge-xt-cli

%files common
%doc README.md AUTHORS 
#doc/surge.pdf
%license LICENSE
%{_datadir}/

%files -n vst-%{name}
%license LICENSE
%dir %{_libdir}/vst
"%{_libdir}/vst/libSurge XT.so"

%files -n vst3-%{name}
%license LICENSE
%dir %{_libdir}/vst3
"%{_libdir}/vst3/Surge XT.vst3"

%files -n clap-%{name}
%license LICENSE
%dir %{_libdir}/clap
"%{_libdir}/clap/Surge XT.clap"

%files -n lv2-%{name}
%license LICENSE
%dir %{_libdir}/lv2
"%{_libdir}/lv2/Surge XT.lv2"

%files fx
%license LICENSE
"%{_bindir}/Surge XT Effects"

%files -n vst-%{name}-fx
%license LICENSE
%dir %{_libdir}/vst/
"%{_libdir}/vst/libSurge XT Effects.so"

%files -n vst3-%{name}-fx
%license LICENSE
%dir %{_libdir}/vst3
"%{_libdir}/vst3/Surge XT Effects.vst3"

%files -n clap-%{name}-fx
%license LICENSE
%dir %{_libdir}/clap
"%{_libdir}/clap/Surge XT Effects.clap"

%files -n lv2-%{name}-fx
%license LICENSE
%dir %{_libdir}/lv2
"%{_libdir}/lv2/Surge XT Effects.lv2"

%changelog
openSUSE Build Service is sponsored by