%global use_qt5 1 %global use_qt6 1 %global appname QCoro %global qt5_build_dir release-qt5 %global qt6_build_dir release-qt6 %global _description %{expand: The QCoro library provides set of tools to make use of the C++20 coroutines in connection with certain asynchronous Qt actions. The major benefit of using coroutines with Qt types is that it allows writing asynchronous code as if it were synchronous and, most importantly, while the coroutine is co_awaiting, the Qt event loop runs as usual, meaning that your application remains responsive.} Name: qcoro Version: 0.7.0 Release: 1%{?dist} License: MIT Summary: C++ Coroutines for Qt URL: https://github.com/danvratil/%{name} Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz %if 0%{?use_qt5} BuildRequires: cmake(Qt5Concurrent) BuildRequires: cmake(Qt5Core) BuildRequires: cmake(Qt5DBus) BuildRequires: cmake(Qt5Network) BuildRequires: cmake(Qt5Qml) BuildRequires: cmake(Qt5Quick) BuildRequires: cmake(Qt5Test) BuildRequires: cmake(Qt5WebSockets) BuildRequires: cmake(Qt5Widgets) BuildRequires: qt5-qtbase-private-devel %endif %if 0%{?use_qt6} BuildRequires: cmake(Qt6Concurrent) BuildRequires: cmake(Qt6Core) BuildRequires: cmake(Qt6DBus) BuildRequires: cmake(Qt6Network) BuildRequires: cmake(Qt6Qml) BuildRequires: cmake(Qt6Quick) BuildRequires: cmake(Qt6Test) BuildRequires: cmake(Qt6WebSockets) BuildRequires: cmake(Qt6Widgets) BuildRequires: pkgconfig(xkbcommon) BuildRequires: qt6-qtbase-private-devel %endif BuildRequires: cmake BuildRequires: dbus-x11 BuildRequires: gcc-c++ BuildRequires: ninja-build %description %_description %if 0%{?use_qt5} %package qt5 Summary: C++ Coroutines for Qt 5 Provides: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: %{name} < %{?epoch:%{epoch}:}%{version}-%{release} %package qt5-devel Summary: Development files for %{appname} (Qt 5 version) Requires: %{name}-qt5%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: qt5-qtbase-devel%{?_isa} Provides: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: %{name}-devel < %{?epoch:%{epoch}:}%{version}-%{release} %description qt5 %_description %description qt5-devel %_description %endif %if 0%{?use_qt6} %package qt6 Summary: C++ Coroutines for Qt 6 %package qt6-devel Summary: Development files for %{appname} (Qt 6 version) Requires: %{name}-qt6%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: qt6-qtbase-devel%{?_isa} %description qt6 %_description %description qt6-devel %_description %endif %prep %autosetup -p1 %build %if 0%{?use_qt5} mkdir %{qt5_build_dir} && pushd %{qt5_build_dir} %cmake -G Ninja \ -S'..' \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_QT_VERSION:STRING=5 \ -DBUILD_TESTING:BOOL=ON \ -DQCORO_BUILD_EXAMPLES:BOOL=ON \ -DQCORO_ENABLE_ASAN:BOOL=OFF \ -DQCORO_WITH_QML:BOOL=ON \ -DQCORO_WITH_QTDBUS:BOOL=ON \ -DQCORO_WITH_QTNETWORK:BOOL=ON \ -DQCORO_WITH_QTQUICK:BOOL=ON \ -DQCORO_WITH_QTWEBSOCKETS:BOOL=ON %cmake_build popd %endif %if 0%{?use_qt6} mkdir %{qt6_build_dir} && pushd %{qt6_build_dir} %cmake -G Ninja \ -S'..' \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_QT_VERSION:STRING=6 \ -DBUILD_TESTING:BOOL=ON \ -DQCORO_BUILD_EXAMPLES:BOOL=ON \ -DQCORO_ENABLE_ASAN:BOOL=OFF \ -DQCORO_WITH_QML:BOOL=ON \ -DQCORO_WITH_QTDBUS:BOOL=ON \ -DQCORO_WITH_QTNETWORK:BOOL=ON \ -DQCORO_WITH_QTQUICK:BOOL=ON \ -DQCORO_WITH_QTWEBSOCKETS:BOOL=ON %cmake_build popd %endif %install %if 0%{?use_qt5} pushd %{qt5_build_dir} %cmake_install popd %endif %if 0%{?use_qt6} pushd %{qt6_build_dir} %cmake_install popd %endif %check %if 0%{?use_qt5} pushd %{qt5_build_dir} %ctest --timeout 3600 --exclude-regex 'qcoroimageprovider' popd %endif %if 0%{?use_qt6} pushd %{qt6_build_dir} %ctest --timeout 3600 --exclude-regex 'qcoroimageprovider' popd %endif %if 0%{?use_qt5} %files qt5 %doc README.md %license LICENSES/* %{_libdir}/lib%{appname}5*.so.0* %files qt5-devel %{_includedir}/%{name}5/ %{_libdir}/cmake/%{appname}5*/ %{_libdir}/lib%{appname}5*.so %{_libdir}/qt5/mkspecs/modules/qt_%{appname}*.pri %endif %if 0%{?use_qt6} %files qt6 %doc README.md %license LICENSES/* %{_libdir}/lib%{appname}6*.so.0* %files qt6-devel %{_includedir}/%{name}6/ %{_libdir}/cmake/%{appname}6*/ %{_libdir}/lib%{appname}6*.so %{_libdir}/qt6/mkspecs/modules/qt_%{appname}*.pri %endif %changelog * Mon Nov 21 2022 Vitaly Zaitsev - 0.7.0-1 - Updated to version 0.7.0. * Fri Jul 22 2022 Fedora Release Engineering - 0.6.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Sat Jul 09 2022 Marc Deop - 0.6.0-1 - 0.6.0 * Sat May 07 2022 Vitaly Zaitsev - 0.5.1-1 - Updated to version 0.5.1. * Wed Mar 16 2022 Vitaly Zaitsev - 0.4.0-4 - Enabled s390x build. * Fri Jan 21 2022 Fedora Release Engineering - 0.4.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Sun Jan 09 2022 Vitaly Zaitsev - 0.4.0-2 - Fixed summary in subpackages. * Sun Jan 09 2022 Vitaly Zaitsev - 0.4.0-1 - Updated to version 0.4.0. - Separated Qt 5 and Qt 6 versions into a different subpackages. * Mon Oct 25 2021 Vitaly Zaitsev - 0.3.0-1 - Updated to version 0.3.0. * Sat Oct 02 2021 Vitaly Zaitsev - 0.2.0-1 - Initial SPEC release.