Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.5.1, 6.6.0 Beta1
-
0338a2f75 (dev), f81945e1d (dev), 6fbd6e1f7 (6.6), 33b5e9f39 (tqtc/lts-6.5), b407e3717 (6.6), ee05413e7 (tqtc/lts-6.5), 7c6ef1544 (tqtc/lts-6.5), ad6753ba7 (dev), dc327e192 (6.6), 66aebd35a (dev), aef0c3cf3 (6.7), 96289e100 (6.6), d4ca70eaa (dev)
Description
While the patches for QTBUG-106683 have successfully stopped the actual rebuilding of *.cpp files and libraries/executables, there are still many things that make the non-Ninja generators think that the project is stale. This causes build times to blow up when a large project has may small QML modules.
See the attached sample project, which is a very basic "Hello World" app plus a single QML_ELEMENT class.
Visual Studio 17 2022 generator
Load the generated *.sln file in Visual Studio, go to "Tools" > "Options" > "Projects and Solutions" > "Build And Run", and set "MSBuild project build output verbosity" to "Detailed" or "Diagnostic". When rebuilding without changes, the build output contains:
3>------ Up-To-Date check: Project: appRebuildTest_qmltyperegistration.vcxproj, Configuration: Debug x64 ------ 3>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_qmltyperegistration' is missing 4>------ Up-To-Date check: Project: appRebuildTest_qmlimportscan.vcxproj, Configuration: Debug x64 ------ 4>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_qmlimportscan' is missing 5>------ Up-To-Date check: Project: appRebuildTest_autogen.vcxproj, Configuration: Debug x64 ------ 5>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_autogen' is missing 7>------ Up-To-Date check: Project: appRebuildTest_qmllint_module.vcxproj, Configuration: Debug x64 ------ 7>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_qmllint_module' is missing 8>------ Up-To-Date check: Project: appRebuildTest_qmllint_json.vcxproj, Configuration: Debug x64 ------ 8>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_qmllint_json' is missing 9>------ Up-To-Date check: Project: appRebuildTest_qmllint.vcxproj, Configuration: Debug x64 ------ 9>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_qmllint' is missing 10>------ Up-To-Date check: Project: appRebuildTest_automoc_json_extraction.vcxproj, Configuration: Debug x64 ------ 10>Project is not up-to-date: build output 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\cmakefiles\apprebuildtest_automoc_json_extraction' is missing 14>------ Up-To-Date check: Project: appRebuildTest.vcxproj, Configuration: Debug x64 ------ 14>Project is not up-to-date: build input 'd:\qtsupport\00481833\build-rebuildtest-desktop_qt_6_6_0_msvc2019_64bit\meta_types\apprebuildtest_json_file_list.txt' was modified after the last build finished.
MinGW Makefiles generator (GNU Make 4.2.1, Built for x86_64-w64-mingw32)
Use the --debug=basic flag. When rebuilding without changes, the build output contains:
File 'all' does not exist. File 'cmake_check_build_system' does not exist. Must remake target 'cmake_check_build_system'. Must remake target 'all'. File 'all' does not exist. File 'CMakeFiles/appRebuildTest.dir/all' does not exist. File 'CMakeFiles/appRebuildTest_tooling.dir/all' does not exist. Must remake target 'CMakeFiles/appRebuildTest_tooling.dir/all'. File 'CMakeFiles/appRebuildTest_tooling.dir/depend' does not exist. Must remake target 'CMakeFiles/appRebuildTest_tooling.dir/depend'. File 'CMakeFiles/appRebuildTest_tooling.dir/build' does not exist. File 'appRebuildTest_tooling' does not exist. Must remake target 'appRebuildTest_tooling'. Must remake target 'CMakeFiles/appRebuildTest_tooling.dir/build'. [ 5%] Built target appRebuildTest_tooling File 'CMakeFiles/appRebuildTest_automoc_json_extraction.dir/all' does not exist. File 'CMakeFiles/appRebuildTest_autogen.dir/all' does not exist. File 'CMakeFiles/appRebuildTest_qmlimportscan.dir/all' does not exist. Must remake target 'CMakeFiles/appRebuildTest_qmlimportscan.dir/all'. File 'CMakeFiles/appRebuildTest_qmlimportscan.dir/depend' does not exist. Must remake target 'CMakeFiles/appRebuildTest_qmlimportscan.dir/depend'. File 'CMakeFiles/appRebuildTest_qmlimportscan.dir/build' does not exist. File 'appRebuildTest_qmlimportscan' does not exist. File 'CMakeFiles/appRebuildTest_qmlimportscan' does not exist. Must remake target 'CMakeFiles/appRebuildTest_qmlimportscan'. Must remake target 'appRebuildTest_qmlimportscan'. Must remake target 'CMakeFiles/appRebuildTest_qmlimportscan.dir/build'. [ 10%] Built target appRebuildTest_qmlimportscan Must remake target 'CMakeFiles/appRebuildTest_autogen.dir/all'. File 'CMakeFiles/appRebuildTest_autogen.dir/depend' does not exist. Must remake target 'CMakeFiles/appRebuildTest_autogen.dir/depend'. File 'CMakeFiles/appRebuildTest_autogen.dir/build' does not exist. File 'appRebuildTest_autogen' does not exist. File 'CMakeFiles/appRebuildTest_autogen' does not exist. Must remake target 'CMakeFiles/appRebuildTest_autogen'. [ 15%] Automatic MOC and UIC for target appRebuildTest Must remake target 'appRebuildTest_autogen'. Must remake target 'CMakeFiles/appRebuildTest_autogen.dir/build'. [ 21%] Built target appRebuildTest_autogen Must remake target 'CMakeFiles/appRebuildTest_automoc_json_extraction.dir/all'. File 'CMakeFiles/appRebuildTest_automoc_json_extraction.dir/depend' does not exist. Must remake target 'CMakeFiles/appRebuildTest_automoc_json_extraction.dir/depend'. File 'CMakeFiles/appRebuildTest_automoc_json_extraction.dir/build' does not exist. File 'appRebuildTest_automoc_json_extraction' does not exist. File 'CMakeFiles/appRebuildTest_automoc_json_extraction' does not exist. Must remake target 'CMakeFiles/appRebuildTest_automoc_json_extraction'. [ 26%] Running AUTOMOC file extraction for target appRebuildTest Must remake target 'appRebuildTest_automoc_json_extraction'. Must remake target 'CMakeFiles/appRebuildTest_automoc_json_extraction.dir/build'. [ 26%] Built target appRebuildTest_automoc_json_extraction Must remake target 'CMakeFiles/appRebuildTest.dir/all'. File 'CMakeFiles/appRebuildTest.dir/depend' does not exist. Prerequisite 'meta_types/appRebuildTest_json_file_list.txt' is newer than target 'meta_types/qt6apprebuildtest_debug_metatypes.json.gen'. Must remake target 'meta_types/qt6apprebuildtest_debug_metatypes.json.gen'. [ 31%] Running moc --collect-json for target appRebuildTest Must remake target 'CMakeFiles/appRebuildTest.dir/depend'. File 'CMakeFiles/appRebuildTest.dir/build' does not exist. Must remake target 'CMakeFiles/appRebuildTest.dir/build'. [100%] Built target appRebuildTest Must remake target 'all'.
Attachments
Issue Links
- relates to
-
QTBUG-106683 qt_add_qml_module: _automoc_json_extraction target and resources are rebuilding every time with Visual Studio Generator
- Closed
-
QTBUG-121046 Some dependencies are always considered not up to date.
- Closed
- resulted in
-
QTBUG-119838 [REG] qt_add_qml_module broken for the VS generator when called in different subdirectories
- Closed