Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-88172

Reconfiguration of static qtdeclarative builds rebuilds some files

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • P3: Somewhat important
    • None
    • None
    • Build System: CMake

    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

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              semlanik Alexey Edelev
              alexandru.croitor Alexandru Croitor
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes