%bcond_with gcc
%global 	framework kguiaddons
%bcond_with compat

Name:		kf6-%{framework}
Version: 6.9.0
Release: 1%{?dist}
Summary:	KDE Frameworks 6 Tier 1 addon with various classes on top of QtGui

License:	BSD-2-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only
URL:		https://invent.kde.org/frameworks/%{framework}

Source0:	https://download.kde.org/stable/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz

BuildRequires:  extra-cmake-modules >= %{version}
BuildRequires:	cmake
%if %{with gcc}
BuildRequires:  gcc-toolset-14-gcc-c++
%else
BuildRequires:  clang
%endif

BuildRequires:  libX11-devel
BuildRequires:  libxcb-devel
BuildRequires:  qt6-qtbase-private-devel
BuildRequires:  kf6-rpm-macros
BuildRequires:  plasma-wayland-protocols-devel
BuildRequires:  qt6-qtbase-devel
BuildRequires:  qt6-qtwayland-devel

BuildRequires:  cmake(Qt6WaylandClient)

BuildRequires:  pkgconfig(wayland-client) >= 1.22
BuildRequires:  pkgconfig(wayland-server) >= 1.22
BuildRequires:  pkgconfig(wayland-cursor) >= 1.22
BuildRequires:  pkgconfig(wayland-egl)  >= 1.22
BuildRequires:  pkgconfig(xkbcommon)

Requires:       (libwayland-client >= 1.22 or rx-libwayland-client)
Requires:       (libwayland-egl >= 1.22 or rx-libwayland-egl)
Requires:       kf6-filesystem
Recommends:     %{name}-compat5 = %{version}-%{release}

%description
%{summary}.

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

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

%package        doc
Summary:        Developer Documentation files for %{name}
%description    doc
Developer Documentation files for %{name} for use with KDevelop or QtCreator.

%if %{with compat}
%package compat5
Summary: KF5 compatibility layer
Requires: %{name} = %{version}-%{release}
Conflicts: kf5-kguiaddons

%description compat5
%{summary}.
%endif

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

%build
%if %{with gcc}
%enable_devtoolset14
export CC=gcc
export CXX=c++
%endif

%global _rxlibdir /opt/rx/%{_lib}
export PATH=/opt/rx/bin:$PATH
export LDFLAGS="-L%{_rxlibdir} -Wl,-rpath=%{_rxlibdir} ${LDFLAGS}"
export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
%cmake_kf6
%cmake_build

%install
%cmake_install
%if %{with compat}

mv %{buildroot}%{_kf6_bindir}/kde-geo-uri-handler %{buildroot}%{_kf6_bindir}/kde6-geo-uri-handler
ln -sf kde6-geo-uri-handler %{buildroot}%{_kf6_bindir}/kde-geo-uri-handler

for i in google-maps-geo-handler.desktop openstreetmap-geo-handler.desktop qwant-maps-geo-handler.desktop wheelmap-geo-handler.desktop
do
    sed -i 's/kde-geo-uri-handler/kde6-geo-uri-handler/' %{buildroot}%{_datadir}/applications/$i
    mv %{buildroot}%{_datadir}/applications/$i %{buildroot}%{_datadir}/applications/$(echo $i | sed 's/.desktop//')-6.desktop
done
%endif

%files
%doc README.md
%license LICENSES/*.txt
%if %{with compat}
%{_kf6_bindir}/kde6-geo-uri-handler
%else
%{_kf6_bindir}/kde-geo-uri-handler
%endif
%{_kf6_datadir}/qlogging-categories6/*categories
%{_kf6_libdir}/libKF6GuiAddons.so.*
%{_kf6_datadir}/applications/*-handler*.desktop
%{_kf6_qmldir}/org/kde/guiaddons/

%if %{with compat}
%files compat5
%{_kf6_bindir}/kde-geo-uri-handler
%endif

%files devel
%{_kf6_includedir}/KGuiAddons/
%{_kf6_libdir}/libKF6GuiAddons.so
%{_kf6_libdir}/cmake/KF6GuiAddons/
%{_qt6_docdir}/*.tags
%{_kf6_libdir}/pkgconfig/KF6GuiAddons.pc

 
%files doc
%{_qt6_docdir}/*.qch

%changelog
* Sat Dec 14 2024 Raven <raven@sysadmins.ws> - 6.9.0-1
- 6.9.0

* Sat Nov  2 2024 Raven <raven@sysadmins.ws> - 6.8.0-1
- 6.8.0

* Tue Oct  8 2024 Raven <raven@sysadmins.ws> - 6.6.0-1
- 6.6.0

* Fri Aug 23 2024 Raven <raven@sysadmins.ws> - 6.5.0-1
- 6.5.0

* Wed Aug  7 2024 Raven <raven@sysadmins.ws> - 6.4.0-1
- 6.4.0

* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.0-4
- rebuild (libxkbcommon)

* Wed Jun 26 2024 Raven <raven@sysadmins.ws> - 6.3.0-3
- Rebuild (qt6)

* Fri Jun 21 2024 Raven <raven@sysadmins.ws> - 6.3.0-3
- Rebuild (libxkbcommon)

* Mon Jun 10 2024 Raven <raven@sysadmins.ws> - 6.3.0-1
- 6.3.0

* Tue May 21 2024 Raven <raven@sysadmins.ws> - 6.2.0-1
- 6.2.0

* Mon Apr 29 2024 Raven <raven@sysadmins.ws> - 6.1.0-1
- 6.1.0

* Wed Feb 21 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.0.0-1
- 6.0.0

* Fri Feb 16 2024 Jan Grulich <jgrulich@redhat.com> - 5.249.0-2
- Rebuild (qt6)

* Wed Jan 31 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.249.0-1
- 5.249.0

* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.248.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.248.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Jan 10 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.248.0-1
- 5.248.0

* Tue Jan 09 2024 Marie Loise Nolden <loise@kde.org> - 5.247.0-2
- add doc package for KF6 API

* Wed Dec 20 2023 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.247.0-1
- 5.247.0

* Sat Dec 02 2023 Justin Zobel <justin.zobel@gmail.com> - 5.246.0-1
- Update to 5.246.0

* Wed Nov 29 2023 Jan Grulich <jgrulich@redhat.com> - 5.245.0-2
- Rebuild (qt6)

* Thu Nov 09 2023 Steve Cossette <farchord@gmail.com> - 5.245.0-1
- 5.245.0

* Tue Oct 17 2023 Jan Grulich <jgrulich@redhat.com> - 5.240.0^20230916.160754.7ff692a-3
- Rebuild (qt6)

* Thu Oct 05 2023 Justin Zobel <justin.zobel@gmail.com> - 5.240.0^20230916.160754.7ff692a-2
- Rebuild for Qt Private API

* Sat Sep 23 2023 Steve Cossette <farchord@gmail.com> - 5.240.0^20230916.160754.7ff692a-1
- Initial release
