Details
-
Task
-
Resolution: Done
-
P3: Somewhat important
-
None
-
None
-
b743323602babb9580149ca2b881ce4bc85e0584
Description
If one doesn't change touch any files at all after a full build of qtdeclarative, and does a reconfiguration of qtdeclarative / qqc2, new qmldir files will be written with an updated timestamp, which will cause some rcc calls and recompilation. Curiously no relinking. Also doesn't happen with a shared Qt build.
ninja explain: restat of output src/imports/qtqml/.rcc/qrc_QtQml_qmldir.cpp older than most recent input src/imports/qtqml/qmldir (1604423952000000000 vs 1604423958000000000) ninja explain: src/imports/qtqml/.rcc/qrc_QtQml_qmldir.cpp is dirty ninja explain: src/imports/qtqml/.rcc/qrc_QtQml_qmldir.cpp is dirty ninja explain: src/imports/qtqml/CMakeFiles/qmlplugin_resources_QtQml_qmldir.dir/.rcc/qrc_QtQml_qmldir.cpp.o is dirty ninja explain: src/imports/qtqml/qmlplugin_resources_QtQml_qmldir is dirty ninja explain: src/imports/qtqml/all is dirty ninja explain: restat of output src/imports/models/.rcc/qrc_QtQml_Models_qmldir.cpp older than most recent input src/imports/models/qmldir (1604423952000000000 vs 1604423958000000000) ninja explain: src/imports/models/.rcc/qrc_QtQml_Models_qmldir.cpp is dirty ninja explain: src/imports/models/.rcc/qrc_QtQml_Models_qmldir.cpp is dirty ninja explain: src/imports/models/CMakeFiles/modelsplugin_resources_QtQml_Models_qmldir.dir/.rcc/qrc_QtQml_Models_qmldir.cpp.o is dirty ninja explain: src/imports/models/modelsplugin_resources_QtQml_Models_qmldir is dirty ninja explain: src/imports/models/all is dirty ninja explain: restat of output src/imports/labsmodels/.rcc/qrc_Qt_labs_qmlmodels_qmldir.cpp older than most recent input src/imports/labsmodels/qmldir (1604423952000000000 vs 1604423958000000000) ninja explain: src/imports/labsmodels/.rcc/qrc_Qt_labs_qmlmodels_qmldir.cpp is dirty ninja explain: src/imports/labsmodels/.rcc/qrc_Qt_labs_qmlmodels_qmldir.cpp is dirty ninja explain: src/imports/labsmodels/CMakeFiles/labsmodelsplugin_resources_Qt_labs_qmlmodels_qmldir.dir/.rcc/qrc_Qt_labs_qmlmodels_qmldir.cpp.o is dirty ninja explain: src/imports/labsmodels/labsmodelsplugin_resources_Qt_labs_qmlmodels_qmldir is dirty ninja explain: src/imports/labsmodels/all is dirty
The problem is that we use multiple file(WRITE) commands as commands like qt6_add_qml_module and qt6_target_qml_files are called, because we don't have the full information to issue one single configure_file() call.
We can probably fix it with our internal scope finalizers for Qt builds, but we'd have to wait for official support for scope finalizers to be able to do it for public facing projects.
Attachments
Issue Links
- depends on
-
QTBUG-77377 Add CMake feature for a function to be called when a target is "closed" (scope finalizers)
- Closed
- relates to
-
QTBUG-88004 Making a change to a CMakeLists.txt file in qtquickcontrols2 results in dependent modules being built
- Closed