November 08, 2022 by Alexey Edelev | Comments
Starting with Qt version 6.5, you no longer need Perl to build Qt from sources. The utilities that used Perl have been replaced with a small application written in C++ that speeds up the pre-scanning process of header files.
Header files in Qt library sources are pre-scanned and synchronized using a tool called syncqt, which so far was written in and depended on Perl. The tool checks header files for conformity with Qt standards and generates the symbol-specific CaMeL header files. The new tool has the same functionality with some advantages.
The first and most important change concerns header files that do not belong to the target platform or should not be in the Qt build due to a disabled feature. In new versions of Qt, these header files will not be deployed to Qt installation. For example, previously in Qt for Desktop, you might see header files that are specific to Android:
QtCore/qjnienvironment.h
QtCore/qjniobject.h
QtCore/qjnitypes.h
Starting with Qt 6.5, the above headers will only be installed in Qt for Android builds.
The second change concerns the build process. To reduce the reconfiguration time, the process of scanning header files is divided into two stages:
The use of the new 'syncqt' tool also reduced the configuration time of the top-level Qt build by ~10% during initial configuration and by ~30% during reconfiguration. Please note that the initial configuration time of the standalone qtbase repository may increase slightly as the tool is built at configure time.
Approximate numbers that you can get on Linux when configuring the top-level Qt repository:
syncqt.pl | syncqt.cpp | |
First configuration | real 0m52,225s user 0m35,595s sys 0m16,695s |
real 0m47,569s user 0m35,351s sys 0m12,582s |
Reconfiguration | real 0m29,564s user 0m22,446s sys 0m7,217s |
real 0m20,721s user 0m15,663s sys 0m5,081s |
We hope these changes improve your Qt experience.
Download the latest release here: www.qt.io/download.
Qt 6.9 is now available, with new features and improvements for application developers and device creators.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Dec 13, 2024
We have released Qt 6.5.8 LTS for commercial license holders today. As a..
Dec 4, 2024
The Qbs build tool version 2.5 is available. Qbs is a community-driven..
Dec 3, 2024
TL;DR: The binary packages of Qt 6.8 or later in the Qt Online installer..
Commenting for this post has ended.
Awesome! Can we now get rid of the repotools that are also written in perl https://code.qt.io/cgit/qt/qtrepotools.git/ ?
Also, this page needs an update then https://wiki.qt.io/Building_Qt_6_from_Git#System_Requirements_-_Qt_WebEngine_and_Qt_PDF
Well, qtrepotools require extra efforts, for now we only allow building Qt without Perl. The relevant documentation will be updated soon.
IMHO these tools should be removed entirely. This make contributing way harder than it should be. Qt should switch Gitlab 🤨