File ironwail.spec of Package ironwail

#
# spec file for package ironwail
#
# Copyright (c) 2024 SUSE LLC
#
# 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:           ironwail
Version:        0.8.0
Release:        0
Summary:        High-performance QuakeSpasm fork
License:        GPL-2.0-or-later
Group:          Amusements/Games/3D/Shoot
URL:            https://github.com/andrei-drexler/ironwail
Source:         %{name}-%{version}.tar.gz
Source1:        ironwail-rpmlintrc
Patch0:         enginepak.patch
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(flac)
BuildRequires:  pkgconfig(libcurl)
BuildRequires:  pkgconfig(libmikmod)
BuildRequires:  pkgconfig(libmpg123)
BuildRequires:  pkgconfig(opus)
BuildRequires:  pkgconfig(opusfile)
BuildRequires:  pkgconfig(sdl2)
BuildRequires:  pkgconfig(vorbis)
Requires(post): hicolor-icon-theme
Requires(postun): hicolor-icon-theme

%description
A fork of the popular GLQuake descendant QuakeSpasm with a focus
on high performance instead of maximum compatibility,
with a few extra features sprinkled on top.
Quake game files (id1 directory containing pak files) must be found
for ironquake to start:
- automatically found if the Quake Steam remaster is installed
- id1 directory can be copied into ~/.ironwail
- start ironwail with option -basedir <install_dir>, where <install_dir>
  is the directory containing the id1 folder

%prep
%autosetup -p0

%build
export CFLAGS="%{optflags}"
# LDFLAGS needed for link to not fail on Leap 15.5
export LDFLAGS="-ldl"
%make_build -C Quake\
	    DO_USERDIRS=1 \
	    USE_CODEC_FLAC=1 \
	    USE_CODEC_OPUS=1 \
	    USE_CODEC_MIKMOD=1 \
	    USE_CODEC_UMX=1

%install
install -D -m 755 Quake/ironwail %{buildroot}%{_bindir}/ironwail
install -Dm 644 -t %{buildroot}%{_datadir}/games/ironwail Quake/ironwail.pak
install -Dm 644 Misc/QuakeSpasm_512.png "%{buildroot}%{_datadir}/icons/hicolor/512x512/apps/ironwail.png"

mkdir "%{buildroot}%{_datadir}/applications"
cat > "%{buildroot}%{_datadir}/applications/ironwail.desktop" <<EOF
[Desktop Entry]
Name=Ironwail
Exec=ironwail
Icon=ironwail
Type=Application
Comment=A Quake game engine
Categories=Game;ActionGame;
EOF

%post
if [ $1 -eq 1 ]; then
    # shown on installs only
    echo "Quake game files (id1 directory containing pak files) must be found for ironquake to start:"
    echo "  - automatically found if the Quake Steam remaster is installed"
    echo "  - id1 directory can be copied into ~/.ironwail"
    echo "  - start ironwail with option -basedir <install_dir>, where <install_dir> is the directory containing the id1 folder"
fi

%files
%license LICENSE.txt
%doc README.md Quakespasm.txt Quakespasm-Music.txt Misc/fitzquake080.txt Misc/fitzquake080sdl.txt Misc/fitzquake085.txt
%{_bindir}/ironwail
%dir %{_datadir}/games/ironwail
%{_datadir}/games/ironwail/ironwail.pak
%{_datadir}/applications/ironwail.desktop
%{_datadir}/icons/hicolor/512x512/apps/ironwail.png

%changelog
openSUSE Build Service is sponsored by