## START: Set by rpmautospec
## (rpmautospec version 0.3.0)
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    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 apiver 4.0
# first two digits of version
%define release_version %(echo %{version} | awk -F. '{print $1"."$2}')

%global glibmm_version 2.68.0
%global gtk4_version 4.7.2
%global cairomm_version 1.15.4
%global pangomm_version 2.50.0
%global gdk_pixbuf2_version 2.35.5

Name:           gtkmm4.0
Version:        4.8.0
Release:        %autorelease
Summary:        C++ interface for the GTK+ library

License:        LGPLv2+
URL:            https://www.gtkmm.org/
Source0:        https://download.gnome.org/sources/gtkmm/%{release_version}/gtkmm-%{version}.tar.xz

BuildRequires:  doxygen
BuildRequires:  gcc-c++
BuildRequires:  libxslt
BuildRequires:  m4
BuildRequires:  meson
BuildRequires:  mm-common
BuildRequires:  pkgconfig(cairomm-1.16) >= %{cairomm_version}
BuildRequires:  pkgconfig(epoxy)
BuildRequires:  pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf2_version}
BuildRequires:  pkgconfig(glibmm-2.68) >= %{glibmm_version}
BuildRequires:  pkgconfig(gtk4) >= %{gtk4_version}
BuildRequires:  pkgconfig(pangomm-2.48) >= %{pangomm_version}

Requires:       cairomm1.16%{?_isa} >= %{cairomm_version}
Requires:       gdk-pixbuf2%{?_isa} >= %{gdk_pixbuf2_version}
Requires:       glibmm2.68%{?_isa} >= %{glibmm_version}
Requires:       gtk4%{?_isa} >= %{gtk4_version}
Requires:       pangomm2.48%{?_isa} >= %{pangomm_version}

%description
gtkmm is the official C++ interface for the popular GUI library GTK+.
Highlights include type safe callbacks, and a comprehensive set of
widgets that are easily extensible via inheritance.


%package        devel
Summary:        Development files for %{name}
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.


%package        doc
Summary:        API documentation for %{name}
BuildArch:      noarch
Requires:       %{name} = %{version}-%{release}
Requires:       glibmm2.68-doc

%description    doc
This package contains the full API documentation for %{name}.


%prep
%setup -q -n gtkmm-%{version}

# Copy demos before build to avoid including built binaries in -doc package
mkdir -p _docs
cp -a demos/ _docs/


%build
%meson -Dbuild-documentation=true
%meson_build


%install
%meson_install


%files
%license COPYING
%doc AUTHORS NEWS README
%{_libdir}/libgtkmm-%{apiver}.so.0*

%files devel
%{_includedir}/gtkmm-%{apiver}/
%{_libdir}/libgtkmm-%{apiver}.so
%{_libdir}/gtkmm-%{apiver}/
%{_libdir}/pkgconfig/gtkmm-%{apiver}.pc

%files doc
%doc %{_docdir}/gtkmm-%{apiver}/
%doc %{_datadir}/devhelp/
%doc _docs/*


%changelog
* Fri Sep 16 2022 Kalev Lember <klember@redhat.com> 4.8.0-1
- Update to 4.8.0

* Mon Aug 08 2022 Kalev Lember <klember@redhat.com> 4.7.1-1
- Update to 4.7.1

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> 4.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Mon Mar 28 2022 David King <amigadave@amigadave.com> 4.6.1-1
- Update to 4.6.1

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> 4.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Tue Sep 14 2021 Kalev Lember <klember@redhat.com> 4.4.0-1
- Initial build of the new parallel installable gtkmm-4.0 ABI version