%global forgeurl https://github.com/SourMesen/Mesen2
%global version %(date +%Y%m%d)
%global commit fabc9a62174f8734a113df6d244f5539ef6b8fcf
%global _forgeversionsuffix %{scm}%(printf %.7s %{commit})
%global source_date_epoch_from_changelog 0
%global _enable_debug_packages 0
%global __brp_strip_comment_note %{nil}
%forgemeta
Name: mesen
Version: %{forgeversion}
Release: %{autorelease}
Summary: Multi-system emulator
License: GPL-3.0-or-later
URL: %{forgeurl}
Source0: %{forgesource}
BuildRequires: make
BuildRequires: clang
BuildRequires: dotnet-sdk-8.0
BuildRequires: sdl2-compat-devel
BuildRequires: libstdc++-static
BuildRequires: desktop-file-utils
Requires: dotnet-runtime-8.0
Requires: sdl2-compat
Requires: libICE
Requires: libSM
%description
Mesen is a multi-system emulator.
It supports the following platforms:
- NES
- SNES
- Game Boy
- Game Boy Advance
- PC Engine
- SMS / Game Gear
- WonderSwan
%prep
%forgesetup
%__sed -i -e '/\.UpdateFileAssociations()/d' \
UI/ViewModels/ConfigViewModel.cs UI/Windows/MainWindow.axaml.cs
%__sed -i -r -e '/\s(CreateShortcut|CheckForUpdates)\s/s/true/false/' \
UI/ViewModels/SetupWizardViewModel.cs
%__cat << EOI > %{name}.xml
$(%__sed -n -e '/^\s*CreateMimeType/p' UI/Config/FileAssociationHelper.cs \
| while IFS='"' read -r SKIP TYPE SKIP EXT SKIP DESCR SKIP
do %__cat << EOC
${DESCR}
EOC
done)
EOI
%build
%make_build USE_AOT=false
%install
%__install -p -m 755 -D -t %{buildroot}%{_bindir} \
bin/linux-x64/Release/linux-x64/publish/Mesen
%__install -p -m 644 -D -t %{buildroot}%{_licensedir}/%{name} LICENSE
%__install -p -m 644 -D -t %{buildroot}%{_pkgdocdir} *.md
%__install -p -m 644 -D -t %{buildroot}%{_datadir}/mime/packages %{name}.xml
%__install -p -m 644 -D -T Linux/appimage/Mesen.48x48.png \
%{buildroot}%{_iconsdir}/hicolor/48x48/apps/Mesen.png
desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
$(printf " --add-mime-type=%s " $(%__sed -n -r -e \
's/^$/\1/p' %{name}.xml)) \
Linux/appimage/Mesen.desktop
%files
%license %{_licensedir}/*
%doc %{_pkgdocdir}
%{_bindir}/*
%{_datadir}/applications/*
%{_datadir}/mime/packages/*
%{_iconsdir}/hicolor/*/apps/*