#
+# Conditional build:
+%bcond_without webengine # QtWebEngine based help viewer
+
+%ifnarch %{x8664} aarch64
+%undefine with_webengine
+%endif
+
+%define qtver 6
Summary: An IDE tailored to the needs of Qt developers
-Summary(pl.UTF-8): IDE dostosowane do potrzeb developerow Qt
+Summary(pl.UTF-8): IDE dostosowane do potrzeb programistów Qt
Name: qt-creator
-Version: 1.2.0
-Release: 1
+Version: 8.0.2
+Release: 3
Epoch: 1
License: LGPL v2.1
-Group: Libraries
-Source0: http://download.qtsoftware.com/qtcreator/%{name}-%{version}-src.zip
-# Source0-md5: 87315f83e37dc92dfb5730282d5ecb56
-Patch0: %{name}-pluginpath64.patch
-URL: http://www.qtsoftware.com/developer/qt-creator
-BuildRequires: QtDBus-devel
-BuildRequires: QtDesigner-devel
-BuildRequires: QtGui-devel
-BuildRequires: QtHelp-devel
-BuildRequires: QtNetwork-devel
-BuildRequires: QtScript-devel
-BuildRequires: QtSql-sqlite3
-BuildRequires: QtSvg-devel
-BuildRequires: QtWebKit-devel
-BuildRequires: QtXml-devel
-BuildRequires: qt4-build >= 4.5.0-3
-BuildRequires: qt4-linguist
-BuildRequires: qt4-qmake >= 4.5.0-3
-BuildRequires: unzip
-%requires_eq QtCore
+Group: X11/Development/Tools
+Source0: https://download.qt.io/official_releases/qtcreator/8.0/%{version}/%{name}-opensource-src-%{version}.tar.xz
+# Source0-md5: bdd73958efa2383a6a0953b81f48cc57
+Patch0: llvm15.patch
+URL: https://doc.qt.io/qt-5/topics-app-development.html
+BuildRequires: Qt6Concurrent-devel >= %{qtver}
+BuildRequires: Qt6Designer-devel >= %{qtver}
+BuildRequires: Qt6Gui-devel >= %{qtver}
+BuildRequires: Qt6Help-devel >= %{qtver}
+BuildRequires: Qt6Network-devel >= %{qtver}
+BuildRequires: Qt6PrintSupport-devel >= %{qtver}
+BuildRequires: Qt6Qml-devel >= %{qtver}
+BuildRequires: Qt6Qt5Compat-devel >= %{qtver}
+BuildRequires: Qt6Quick-devel >= %{qtver}
+BuildRequires: Qt6SerialPort-devel >= %{qtver}
+BuildRequires: Qt6ShaderTools-devel >= %{qtver}
+BuildRequires: Qt6Sql-devel >= %{qtver}
+BuildRequires: Qt6Svg-devel >= %{qtver}
+BuildRequires: Qt6UiTools-devel >= %{qtver}
+%{?with_webengine:BuildRequires: Qt6WebEngine-devel >= %{qtver}}
+BuildRequires: Qt6Widgets-devel >= %{qtver}
+BuildRequires: Qt6Xml-devel >= %{qtver}
+BuildRequires: clang-devel >= 6.0.0
+BuildRequires: gdb
+BuildRequires: libstdc++-devel
+BuildRequires: llvm-devel >= 7.0.0
+BuildRequires: qt6-build >= %{qtver}
+BuildRequires: qt6-linguist
+BuildRequires: qt6-shadertools
+BuildRequires: rpmbuild(macros) >= 1.742
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Requires(post,postun): desktop-file-utils
+%requires_eq Qt6Core
+Requires: Qt6Gui-platform-xcb
+Requires: Qt6Sql-sqldriver-sqlite3
+Requires: hicolor-icon-theme
+Requires: qt5-qtdeclarative
+# for xdg-open
+Suggests: xdg-utils
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define skip_post_check_so 'libClangsupport\.so.*'
+
%description
-Qt Creator is a cross-platform integrated development environment (IDE)
-tailored to the needs of Qt developers.
+Qt Creator is a cross-platform integrated development environment
+(IDE) tailored to the needs of Qt developers.
%description -l pl.UTF-8
-Qt Creator to wieloplatformowe IDE dostosowane do potrzeb developerow Qt.
+Qt Creator to wieloplatformowe IDE dostosowane do potrzeb programistów
+Qt.
%prep
-%setup -q -n %{name}-%{version}-src
-
-%if "%{_lib}" == "lib64"
+%setup -q -n %{name}-opensource-src-%{version}
%patch0 -p1
-%endif
-%build
-export QTDIR=%{_libdir}/qt4
-# the qmakespec in qt4 is somewhat broken, need to look at this
-#export QMAKESPEC=%{_datadir}/qt4/mkspecs/linux-g++/
+sed -i '1s|^#!.*python\b|#!%{__python}|' src/shared/qbs/src/3rdparty/python/bin/dmgbuild
-qmake-qt4 qtcreator.pro \
- QMAKE_CXX="%{__cxx}" \
- QMAKE_LINK="%{__cxx}" \
- QMAKE_CXXFLAGS_RELEASE="%{rpmcflags}" \
- QMAKE_RPATH=
+%build
+%cmake -B build \
+ -DBUILD_QBS:BOOL=ON \
+ %{cmake_on_off webengine BUILD_HELPVIEWERBACKEND_QTWEBENGINE}
-%{__make}
+%{__make} -C build
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_desktopdir}
-export QTDIR=%{_libdir}/qt4
-%{__make} install \
- INSTALL_ROOT=$RPM_BUILD_ROOT/%{_prefix}
-
-%if "%{_lib}" == "lib64"
-mv -f $RPM_BUILD_ROOT/{%{_prefix}/lib,%{_libdir}}
-%endif
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
-mv -f $RPM_BUILD_ROOT/%{_bindir}/{qtcreator.bin,qtcreator}
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
+echo "%{_libdir}/qtcreator" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/qtcreator.conf
+cp -p share/applications/org.qt-project.qtcreator.desktop $RPM_BUILD_ROOT%{_desktopdir}
-install -d $RPM_BUILD_ROOT/%{_sysconfdir}/ld.so.conf.d
-echo "%{_libdir}/qtcreator" > $RPM_BUILD_ROOT/%{_sysconfdir}/ld.so.conf.d/qtcreator.conf
+rm -f $RPM_BUILD_ROOT%{_libdir}/qtcreator/*.prl
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+/sbin/ldconfig
+%update_desktop_database
+%update_icon_cache hicolor
+
+%postun
+/sbin/ldconfig
+%update_desktop_database_postun
+%update_icon_cache hicolor
+
%files
%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/qbs
+%attr(755,root,root) %{_bindir}/qbs-config
+%attr(755,root,root) %{_bindir}/qbs-config-ui
+%attr(755,root,root) %{_bindir}/qbs-create-project
+%attr(755,root,root) %{_bindir}/qbs-setup-android
+%attr(755,root,root) %{_bindir}/qbs-setup-qt
+%attr(755,root,root) %{_bindir}/qbs-setup-toolchains
%attr(755,root,root) %{_bindir}/qtcreator
-%attr(755,root,root) %{_bindir}/qtcreator_process_stub
%{_sysconfdir}/ld.so.conf.d/qtcreator.conf
+%dir %{_libexecdir}/qtcreator
+%attr(755,root,root) %{_libexecdir}/qtcreator/buildoutputparser
+%attr(755,root,root) %{_libexecdir}/qtcreator/cpaster
+%attr(755,root,root) %{_libexecdir}/qtcreator/dmgbuild
+%attr(755,root,root) %{_libexecdir}/qtcreator/perf2text
+%attr(755,root,root) %{_libexecdir}/qtcreator/perfparser
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtcreator_processlauncher
+%attr(755,root,root) %{_libexecdir}/qtcreator/qbs_processlauncher
+%attr(755,root,root) %{_libexecdir}/qtcreator/qml2puppet
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtcreator_process_stub
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtc-askpass
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtpromaker
+%attr(755,root,root) %{_libexecdir}/qtcreator/sdktool
%dir %{_libdir}/qtcreator
%attr(755,root,root) %{_libdir}/qtcreator/lib*.so.*.*
%attr(755,root,root) %{_libdir}/qtcreator/lib*.so
-%attr(755,root,root) %ghost %{_libdir}/qtcreator/lib*.so.1
+%attr(755,root,root) %ghost %{_libdir}/qtcreator/lib*.so.8
%dir %{_libdir}/qtcreator/plugins
-%dir %{_libdir}/qtcreator/plugins/Nokia
-%{_libdir}/qtcreator/plugins/Nokia/*.pluginspec
-%attr(755,root,root) %{_libdir}/qtcreator/plugins/Nokia/*.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/lib*.so
+%dir %{_libdir}/qtcreator/plugins/qbs
+%dir %{_libdir}/qtcreator/plugins/qbs/plugins
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libclangcompilationdbgenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libiarewgenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libkeiluvgenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libmakefilegenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libqbs_cpp_scanner.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libqbs_qt_scanner.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libvisualstudiogenerator.so
+%dir %{_libdir}/qtcreator/plugins/qmldesigner
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libStudioPlugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libassetexporterplugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libcomponentsplugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libqmlpreviewplugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libqtquickplugin.so
%{_datadir}/qtcreator
-%{_defaultdocdir}/qtcreator
-%{_pixmapsdir}/qtcreator_logo*.png
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%{_datadir}/metainfo/org.qt-project.qtcreator.appdata.xml
+%{_desktopdir}/org.qt-project.qtcreator.desktop
+%{_iconsdir}/hicolor/*x*/apps/QtProject-qtcreator.png