# The naming scheme in non-Mandriva-based distros
%if 0%{!?mklibname:1}
%define mklibname(ds)  lib%{1}%{?2:%{2}}%{-s:-static}%{-d:-devel}
%endif
%if 0%{!?mkrel:1}
%define mkrel(c) %{1}%{?dist}
%endif

%define apiver    3
%define major     0
%define libname   %mklibname sdl %{apiver} %{major}
%define develname %mklibname sdl %{apiver} -d

Name:           sdl3
Version:        3.2.6
Release:        %mkrel 1
Summary:        Simple DirectMedia Layer Library 3
License:        Zlib
Group:          System/Libraries
URL:            https://libsdl.org/
Source:         https://github.com/libsdl-org/SDL/releases/download/release-%{version}/SDL3-%{version}.tar.gz

BuildRequires:  cmake
BuildRequires:  gcc
BuildRequires:  pkgconfig(libdecor-0)
BuildRequires:  pkgconfig(alsa) >= 1.0.11
BuildRequires:  pkgconfig(dbus-1)
BuildRequires:  pkgconfig(fcitx)
BuildRequires:  pkgconfig(egl)
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glesv2)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(glu)
BuildRequires:  pkgconfig(ibus-1.0)
BuildRequires:  pkgconfig(ice)
BuildRequires:  pkgconfig(jack)
# KMS/DRM driver needs libdrm and libgbm
BuildRequires:  pkgconfig(gbm) >= 11.1.0
BuildRequires:  pkgconfig(libdrm) >= 2.4.82
BuildRequires:  pkgconfig(libpipewire-0.3) >= 0.3.20
BuildRequires:  pkgconfig(libpulse-simple) >= 0.9
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pkgconfig(libusb-1.0)
BuildRequires:  pkgconfig(sndio)
BuildRequires:  pkgconfig(udev)
BuildRequires:  pkgconfig(wayland-client) >= 1.18
BuildRequires:  pkgconfig(wayland-cursor)
BuildRequires:  pkgconfig(wayland-egl)
BuildRequires:  pkgconfig(wayland-protocols)
BuildRequires:  pkgconfig(wayland-scanner)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcursor)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xi)
BuildRequires:  pkgconfig(xinerama)
BuildRequires:  pkgconfig(xkbcommon)
BuildRequires:  pkgconfig(xrandr)
BuildRequires:  pkgconfig(xscrnsaver)
BuildRequires:  pkgconfig(xxf86vm)

%description
This is the "Simple DirectMedia Layer 3" library. It provides a generic
API for access to audio, keyboard, mouse, and display framebuffer
across multiple platforms.

SDL fully supports high end 3D graphics using Direct3D and OpenGL,
and has a 2D graphics API for emulators and classic games.

%package -n %{libname}
Summary:        Simple DirectMedia Layer Library 3
Group:          System/Libraries

%description -n %{libname}
This is the "Simple DirectMedia Layer" library 3. It provides a generic
API for access to audio, keyboard, mouse, and display framebuffer
across multiple platforms.

SDL uses dlopen, so if you experience problems under X11, check
again that libXrandr2 and libXi6 are in fact installed.

%package -n %{develname}
Summary:        Headers for developing programs that use %{name}
Group:          Development/C++
Requires:       %{libname} = %{version}-%{release}
Provides:       %{name}-devel = %{version}-%{release}
Provides:       SDL%{apiver}-devel = %{version}-%{release}
Requires:       pkgconfig(gl)
Requires:       pkgconfig(glesv1_cm)
Requires:       pkgconfig(glesv2)
Requires:       pkgconfig(glu)
Requires:       pkgconfig(x11)
Requires:       pkgconfig(xproto)

%description -n %{develname}
This package contains the headers that programmers will need to develop
applications which will use %{name}.

%prep
%autosetup -p1 -n SDL3-%{version}

%build
%cmake \
%ifarch %{ix86}
	-DSDL_MMX:BOOL=OFF                  \
	-DSDL_SSE:BOOL=OFF                  \
	-DSDL_SSE2:BOOL=OFF                 \
%endif
	-DSDL_SSE3:BOOL=OFF                 \
	-DSDL_ALSA_SHARED:BOOL=OFF          \
	-DSDL_JACK_SHARED:BOOL=OFF          \
	-DSDL_PIPEWIRE_SHARED:BOOL=OFF      \
	-DSDL_PULSEAUDIO_SHARED:BOOL=OFF    \
	-DSDL_X11_SHARED:BOOL=OFF           \
	-DSDL_WAYLAND_SHARED:BOOL=OFF       \
	-DSDL_WAYLAND_LIBDECOR_SHARED=OFF   \
	-DSDL_KMSDRM_SHARED:BOOL=OFF        \
	-DSDL_STATIC:BOOL=OFF               \
	-DSDL_RPATH:BOOL=OFF                \
	-DSDL_INSTALL_DOCS:BOOL=ON          \
	-DSDL_TEST_LIBRARY:BOOL=OFF

%cmake_build

%install
%cmake_install

rm -rf %{buildroot}%{_datadir}/licenses/SDL3/LICENSE.txt

%files -n %{libname}
%license LICENSE.txt
%doc BUGS.txt CREDITS.md README.md
%{_libdir}/libSDL3.so.%{major}{,.*}

%files -n %{develname}
%doc README.md WhatsNew.txt
%{_includedir}/SDL3/
%{_libdir}/libSDL3.so
%{_libdir}/cmake/SDL3/
%{_libdir}/pkgconfig/%{name}.pc
%{_mandir}/man3/SDL*.3*