#
# Conditional build:
+%bcond_without doc # build without doc
%bcond_without tests # build without tests
%define orgname extra-cmake-modules
-%define kdeframever 5.19
+%define kdeframever 5.102
Summary: Extra Cmake Modules for KF5
+Summary(pl.UTF-8): Dodatkowe moduły Cmake'a dla KF5
Name: kf5-%{orgname}
-Version: 5.19.0
+Version: 5.102.0
Release: 1
License: BSD
Group: Development/Building
-Source0: http://download.kde.org/stable/frameworks/%{kdeframever}/%{orgname}-%{version}.tar.xz
-# Source0-md5: c18b4e3ad6e37ce1fe372931d2b269fb
-URL: http://www.kde.org/
-BuildRequires: cmake >= 2.8.12
+Source0: https://download.kde.org/stable/frameworks/%{kdeframever}/%{orgname}-%{version}.tar.xz
+# Source0-md5: b907804a6476abffe6249fe78d6ee71a
+Patch0: %{orgname}-tests.patch
+Patch1: kdefetchtranslations-test.patch
+Patch2: no-fatal-warnings.patch
+URL: https://kde.org/
+BuildRequires: cmake >= 3.16
+BuildRequires: qt5-assistant >= 5.9.0
BuildRequires: qt5-linguist
BuildRequires: rpmbuild(macros) >= 1.698
-BuildRequires: sphinx-pdg
+BuildRequires: sed >= 4.0
+%{?with_doc:BuildRequires: sphinx-pdg >= 1.2}
BuildRequires: tar >= 1:1.22
BuildRequires: xz
+%if %{with tests}
+BuildRequires: Qt5Core-devel >= 5.9.0
+BuildRequires: Qt5Quick-devel >= 5.9.0
+BuildRequires: libstdc++-devel >= 6:5
+%endif
+BuildConflicts: qmake
+BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define qt5dir %{_libdir}/qt5
-
%description
The Extra CMake Modules package, or ECM, adds to the modules provided
by CMake, including both ones used by find_package() to find common
CMake scripts across KDE software, it is intended to be useful for any
software that uses the CMake build system.
+%description -l pl.UTF-8
+Pakiet Extra CMake Modules (ECM) dostarcza dodatkowe moduły do tych
+dostarczanych przez CMake'a, zawierające te używane przez
+find_package() do szukania popularnego oprogramowania, a także takie,
+których można używać bezpośrednio w CMakeLists.txt do wykonywania
+wspólnych zadań.
+
+Ponadto pakiet dostarcza wspólne ustawienia budowana używane w
+oprogramowaniu tworzonym przez społeczność KDE.
+
+O ile główną motywacją tego modułu jest zmniejszenie duplikacji w
+skryptach CMake'a w oprogramowaniu KDE, ma także być przydatny dla
+dowolnych programów wykorzystujących system budowania CMake.
+
+%package apidocs
+Summary: API documentation for %{orgname}
+Summary(pl.UTF-8): Dokumentacja API %{orgname}
+Group: Documentation
+Obsoletes: kf5-extra-cmake-modules-doc < 1.4.0
+
+%description apidocs
+API documentation for %{orgname}.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API dla %{orgname}.
+
%prep
%setup -q -n %{orgname}-%{version}
+%patch0 -p1
+%patch1 -p0
+%patch2 -p1
+
+# causes make install failure after running tests
+%{__sed} -i -e '/ECMToolchainAndroidTest/d' tests/CMakeLists.txt
%build
install -d build
cd build
%cmake \
- ../
+ %{!?with_tests:-DBUILD_TESTING=OFF} \
+ %{!?with_doc:-DBUILD_HTML_DOCS=OFF} \
+ ..
+
%{__make}
-%{?with_tests:%{__make} test}
+%if %{with tests}
+# GenerateSipBindings wants clang and has libclang checks incompatible with libclang >= 4
+# ECMPoQmToolsTest fails to build it's own moc file
+ctest -E '(GenerateSipBindings|ECMPoQmToolsTest)' --output-on-failure
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C build/ install \
+
+%{__make} -C build -j1 install \
DESTDIR=$RPM_BUILD_ROOT
-mv $RPM_BUILD_ROOT%{_docdir}/ECM ECM-doc
+sed -i -e 's#/usr/bin/env bash#/bin/bash#' $RPM_BUILD_ROOT%{_datadir}/ECM/kde-modules/kde-git-commit-hooks/pre-commit.in
+sed -i -e 's#/usr/bin/env bash#/bin/bash#' $RPM_BUILD_ROOT%{_datadir}/ECM/kde-modules/kde-git-commit-hooks/clang-format.sh
+
+%if %{with doc}
+%{__mv} $RPM_BUILD_ROOT%{_docdir}/ECM ECM-doc
+%endif
+install -d $RPM_BUILD_ROOT%{_datadir}/qlogging-categories5
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc COPYING-CMAKE-SCRIPTS README.rst ECM-doc/*
+%doc COPYING-CMAKE-SCRIPTS README.rst
%{_datadir}/ECM
+%{_datadir}/qlogging-categories5
%{_mandir}/man7/ecm*.7*
+
+%if %{with doc}
+%files apidocs
+%defattr(644,root,root,755)
+%doc ECM-doc/html/*
+%endif