## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 6;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%global forgeurl https://github.com/npwoods/bletchmame

Name:           bletchmame
Version:        2.15
Release:        %autorelease
Summary:        MAME emulator frontend

License:        GPL-3.0-or-later
URL:            https://www.bletchmame.org
Source:         %{forgeurl}/archive/v%{version}/%{name}-%{version}.tar.gz
Source:         README.fedora
# Use the distribution MAME by default
Patch:          bletchmame-default-paths.patch
# Avoid method deprecated in Qt 6.4.0
Patch:          %{forgeurl}/commit/a72c6cc3b83209c446394528e36cc69b45cb9132.patch
# Qt 6.4 compilation fixes
Patch:          %{forgeurl}/commit/b7866b44c8222697ffe3cdc1b101f4d7d7da6bce.patch
# Disable broken tests on 32 bit architectures
# https://github.com/npwoods/bletchmame/issues/256
Patch:          bletchmame-disable-broken-tests.patch

BuildRequires:  gcc-c++
BuildRequires:  cmake
BuildRequires:  desktop-file-utils
BuildRequires:  expat-devel
BuildRequires:  libappstream-glib
BuildRequires:  libxkbcommon-devel
BuildRequires:  observable-devel
BuildRequires:  perl
BuildRequires:  qt6-qttools-devel
BuildRequires:  qt6-qtbase-devel
BuildRequires:  qt6-qt5compat-devel
BuildRequires:  quazip-qt6-devel
BuildRequires:  sed
BuildRequires:  zlib-devel

Recommends:     mame
Recommends:     mame-data-software-lists

%description
BletchMAME is a new experimental front end for MAME. Unlike existing front ends
(which function as launchers, keeping MAME's internal UI), BletchMAME replaces
the internal MAME UI with a more conventional point and click GUI to provide a
friendlier experience in a number of areas (such as profiles, input
configuration and a number of others). While BletchMAME is intended to support
all machines supported by MAME, it should be particularly suitable to computer
emulation.

%prep
%setup -q
%patch -P 0 -p1
%patch -P 1 -p1
%patch -P 2 -p1
# Disable broken tests on 32 bit architectures
%ifarch armv7hl i686 s390x
%patch -P 3 -p1
%endif

cp -p %{SOURCE1} .

# remove bundled libraries
rm -r lib/*
ln -s %{_includedir}/observable lib/observable

# Set build version
mkdir include
echo "v%{version}" | \
  perl scripts/process_version.pl --versionhdr > include/version.gen.h

# Disable -Werror to avoid build failures
sed -i 's/-Werror//' CMakeLists.txt

# Disable broken test due to Qt upgrade
rm src/tests/prefs_test.cpp
sed -i 's:src/tests/prefs_test.cpp::g' CMakeLists.txt

%build
# Disable libraries as they're only for internal use and not meant to be
# installed
%cmake \
  -DUSE_SHARED_LIBS=ON \
  -DBUILD_SHARED_LIBS=OFF \
  -DHAS_VERSION_GEN_H=1
%cmake_build

%install
%cmake_install
mkdir -p %{buildroot}%{_datadir}/%{name}
cp -pr plugins %{buildroot}%{_datadir}/%{name}

desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{name}.desktop
install -Dpm0644 -t %{buildroot}%{_metainfodir} %{name}.metainfo.xml
appstream-util validate-relax --nonet \
  %{buildroot}%{_metainfodir}/%{name}.metainfo.xml

%check
%ctest

%files
%license LICENSE.rtf
%doc README.md README.fedora
%{_bindir}/BletchMAME
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_metainfodir}/%{name}.metainfo.xml

%changelog
## START: Generated by rpmautospec
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild

* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Fri May 05 2023 Nicolas Chauvet <kwizart@gmail.com> - 2.15-1
- Revert to previous version

* Thu May 04 2023 Nicolas Chauvet <kwizart@gmail.com> - 2.16-2
- Add missing deps

* Thu May 04 2023 Nicolas Chauvet <kwizart@gmail.com> - 2.16-1
- Update to 2.16

* Thu May 04 2023 Nicolas Chauvet <kwizart@gmail.com> - 2.15-6
- Fix patch and quazip rebuild

* Sat Mar 25 2023 Davide Cavalca <dcavalca@fedoraproject.org> - 2.15-5
- Refresh upstream patches

* Sat Mar 25 2023 Davide Cavalca <dcavalca@fedoraproject.org> - 2.15-4
- Backport Qt 6.4 support; Fixes: RHBZ#2169500

* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.15-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Fri Jul 01 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 2.15-1
- Update to 2.15; Fixes: RHBZ#2089066

* Mon Apr 18 2022 Miro Hrončok <miro@hroncok.cz> - 2.14-2
- Rebuilt for quazip 1.3

* Sat Mar 26 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 2.14-1
- Update to 2.14; Fixes: RHBZ#2068762

* Sat Feb 26 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 2.13-1
- Update to 2.13

* Thu Feb 17 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 2.12-1
- Update to 2.12; Fixes: RHBZ#2045222

* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.11-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Tue Dec 28 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.11-1
- Update to 2.11; Fixes: RHBZ#2035821

* Sat Dec 11 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.10-1
- Update to 2.10

* Sun Oct 31 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.9-3
- Temporarily gate out tests on 32 bit architectures

* Mon Oct 25 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.9-2
- Fix tests on i686, temporarily gate out s390x

* Sun Oct 24 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.9-1
- Update to 2.9; Fixes: RHBZ#2016808

* Sat Sep 18 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.8-1
- Update to 2.8; Fixes: RHBZ#1998747

* Thu Aug 19 2021 Björn Esser <besser82@fedoraproject.org> - 2.6-4
- Rebuild (quazip)

* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Tue Jul 20 2021 Davide Cavalca <dcavalca@fedoraproject.org> - 2.6-1
- Initial package; Fixes RHBZ#1983375
## END: Generated by rpmautospec