-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.5.0
-
None
-
6f7d09677 (dev), 5761f254a (dev), fdeaf3054 (dev), 16fa77991 (6.5), 009d4fdc2 (6.5), 4e4cd7416 (dev), b2f093135 (6.5), 7e198c8fa (6.5), a8cf976ce (dev), c131e159b (6.6)
The C++ syncqt tool that replaced the Perl script has severe buildsystem problems:
- it is compiled during CMake time, instead of Ninja time
- It has no NInja target to build it
- it is an always-optimised build
I understand the first one may be difficult to solve, as we may need it during generation time. I don't see why, because after a CMake run on a clean build dir, the include hierarchy is pretty empty:
$ find include/QtCore -type f include/QtCore/QtCoreDepends include/QtCore/qtcoreexports.h
This tells me that syncqt hasn't been run yet, so it needn't have been built yet.
Regardless, there has to be a target to rebuild it without having to rerun CMake, otherwise iterating on it is very time-consuming.
Finally, it needs to obey the user's choice of compiler flags and build types, like moc does. That means a debug build of qtbase must produce a debug build of syncqt, so we can actually debug the tool. The impact on time execution is minimal for this tool, especially compared to the cmake_automoc and moc tools, which do far more processing and are run far more often. Besides, there's QT_FORCE_FIND_TOOLS to avoid such problems.