File simplescreenrecorder.spec of Package simplescreenrecorder

#
# spec file for package simplescreenrecorder
#
# copyright (c) 2025 munix9@googlemail.com
#

%ifarch %{ix86} x86_64
%bcond_without  glinject
%else
%bcond_with     glinject
%endif

Name:           simplescreenrecorder
Version:        0.4.4
Release:        0
Summary:        A feature-rich screen recorder that supports X11 and OpenGL
License:        GPL-3.0-or-later
URL:            https://www.maartenbaert.be/simplescreenrecorder/
Source0:        %{name}-%{version}.tar.gz
Source99:       baselibs.conf
BuildRequires:  AppStream
BuildRequires:  cmake
BuildRequires:  desktop-file-utils
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  hicolor-icon-theme
BuildRequires:  ninja
BuildRequires:  pkgconfig
BuildRequires:  qt6-tools-linguist
BuildRequires:  cmake(Qt6Core) >= 6.2
BuildRequires:  cmake(Qt6Gui)
BuildRequires:  cmake(Qt6Linguist)
BuildRequires:  cmake(Qt6Widgets)
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glu)
BuildRequires:  pkgconfig(jack)
BuildRequires:  pkgconfig(libavcodec) >= 53
BuildRequires:  pkgconfig(libavformat) >= 53
BuildRequires:  pkgconfig(libavutil) >= 51
BuildRequires:  pkgconfig(libjpeg)
BuildRequires:  pkgconfig(libpipewire-0.3)
BuildRequires:  pkgconfig(libpulse)
BuildRequires:  pkgconfig(libswscale) >= 2
BuildRequires:  pkgconfig(libv4l2)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xfixes)
BuildRequires:  pkgconfig(xi)
BuildRequires:  pkgconfig(xinerama)
%if %{with glinject}
# OpenGL apps:
Recommends:     libssr-glinject = %{version}
%if "%{_lib}" == "lib64"
# 32bit OpenGL apps at 64bit system:
Suggests:       libssr-glinject-32bit
%endif
%endif

%description
SimpleScreenRecorder is a Linux program that was created to record programs
and games.

The original goal was to create a program that was just really simple to
use, the result is actually a pretty powerful program. It's 'simple' in
the sense that it's easier to use than ffmpeg/avconv or VLC, because it
has a straightforward user interface.

%if %{with glinject}
%package -n libssr-glinject
Summary:        Simple Screen Recorder OpenGL plugin
Requires:       %{name} = %{version}

%description -n libssr-glinject
This package provides nice OpenGL apps screencasting support
for Simple Screen Recorder. At 64bit system you may also
install libssr-glinject-32bit for 32bit OpenGL apps support.
%endif

%prep
%autosetup -p1

%build
%define __builder ninja
%cmake \
	-DWITH_QT6=TRUE \
	-DWITH_GLINJECT=%{?with_glinject:TRUE}%{!?with_glinject:FALSE}
%cmake_build

%install
%cmake_install
%fdupes -s %{buildroot}%{_datadir}/icons/hicolor

%check
desktop-file-validate \
	%{buildroot}%{_datadir}/applications/be.maartenbaert.%{name}.desktop
appstreamcli validate --no-net \
	%{buildroot}%{_datadir}/metainfo/be.maartenbaert.%{name}.metainfo.xml

%files
%doc *.txt *.md data/resources/about.htm
%license COPYING
%{_bindir}/%{name}
%{_bindir}/ssr-glinject
%{_datadir}/applications/be.maartenbaert.%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}*.{png,svg}
%{_datadir}/metainfo/be.maartenbaert.%{name}.metainfo.xml
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/output-profiles
%{_datadir}/%{name}/translations
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_mandir}/man1/ssr-glinject.1%{?ext_man}

%if %{with glinject}
%files -n libssr-glinject
%{_libdir}/libssr-glinject.so
%endif

%changelog
openSUSE Build Service is sponsored by