Perl is out of the list of dependencies

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