Perl is out of the list of dependencies
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 initial scan at the configuration stage occurs once during the first configuration.
- Scanning at the build stage occurs when the header files of Qt modules are changed. This change allows precise control over dependencies between build targets and reduces Qt reconfiguration time.
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.
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.8 Now!
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.