Details
-
Bug
-
Resolution: Unresolved
-
Not Evaluated
-
None
-
Qt Creator 17.0.0
-
None
Description
I'm building qt with a small number of repositories enabled (multimedia and dependencies).
after a cmake run, the project is re-populated which is extremely slow:
[cmake] Running C:\Program Files\CMake\bin\cmake.exe -S D:/qt6 -B D:/qt6/build/Clang_cl-Debug "-DQT_BUILD_TESTS:BOOL=ON" "-DQT_UNITY_BUILD:BOOL=ON" in D:\qt6\build\Clang_cl-Debug. ---->8---- [cmake] * QtBuildInternals [cmake] * OpenGL [cmake] * WrapPCRE2 [cmake] * WrapZLIB [cmake] * WrapHarfbuzz [cmake] * WrapPNG [cmake] * WrapOpenGL [cmake] * ODBC [cmake] * WrapFreetype [cmake] * WrapJpeg [cmake] * Qt6DBusTools (required version >= 6.11.0) [cmake] * Qt6DBusPrivate (required version == 6.11.0) [cmake] * Qt6DBus [cmake] * Qt6PrintSupportPrivate (required version == 6.11.0) [cmake] * Qt6PrintSupport [cmake] * Qt6XmlPrivate (required version == 6.11.0) [cmake] * Qt6Xml (required version >= 6.11.0) [cmake] * Qt6OpenGLWidgets (required version >= 6.11.0) [cmake] * Qt6SqlPrivate (required version == 6.11.0) [cmake] * Qt6Sql (required version >= 6.11.0) [cmake] * Qt6TestInternalsPrivate (required version >= 6.11.0) [cmake] * Qt6LanguageServerPrivate (required version >= 6.11.0) [cmake] * Qt6LinguistTools (required version >= 6.11.0) [cmake] * Qt6ExamplesAssetDownloaderPrivate (required version >= 6.11.0) [cmake] * Python [cmake] * Qt6PacketProtocolPrivate (required version >= 6.11.0) [cmake] * Qt6QuickTestUtilsPrivate (required version >= 6.11.0) [cmake] * Qt6QuickTimelinePrivate (required version == 6.10.0) [cmake] * Qt6QuickTimeline (required version >= 6.11.0) [cmake] * WrapOpenXR [cmake] * Qt6SvgPrivate (required version == 6.11.0) [cmake] * Qt6Svg (required version >= 6.11.0) [cmake] * Qt6QuickTemplates2Private (required version == 6.11.0) [cmake] * Qt6QuickControls2Private (required version == 6.11.0) [cmake] * Qt6QuickControls2 (required version >= 6.11.0) [cmake] * WMF [cmake] * FFmpeg [cmake] * Qt6Quick3DTools (required version >= 6.11.0) [cmake] * Qt6Quick3DUtilsPrivate (required version == 6.11.0) [cmake] * Qt6ShaderToolsTools (required version >= 6.11.0) [cmake] * Qt6ShaderToolsPrivate (required version == 6.11.0) [cmake] * Qt6ShaderTools (required version >= 6.11.0) [cmake] * Qt6Concurrent (required version >= 6.11.0) [cmake] * Qt6Quick3DRuntimeRenderPrivate (required version == 6.11.0) [cmake] * Qt6Quick3DPrivate (required version == 6.11.0) [cmake] * Qt6Quick3D (required version >= 6.11.0) [cmake] * Threads [cmake] * Qt6BuildInternals (required version >= 6.11.0) [cmake] * WrapAtomic [cmake] * Qt6CorePrivate (required version == 6.11.0) [cmake] * Qt6Core (required version >= 6.11.0) [cmake] * Qt6GuiPrivate (required version == 6.11.0) [cmake] * Qt6Gui (required version >= 6.11.0) [cmake] * Qt6NetworkPrivate (required version == 6.11.0) [cmake] * Qt6Network (required version >= 6.11.0) [cmake] * Qt6MultimediaPrivate (required version == 6.11.0) [cmake] * Qt6Multimedia (required version >= 6.11.0) [cmake] * Qt6CoreTools (required version >= 6.11.0) [cmake] * Qt6GuiTools (required version >= 6.11.0) [cmake] * Qt6WidgetsTools (required version >= 6.11.0) [cmake] * Qt6WidgetsPrivate (required version == 6.11.0) [cmake] * Qt6Widgets (required version >= 6.11.0) [cmake] * Qt6TestPrivate (required version == 6.11.0) [cmake] * Qt6Test (required version >= 6.11.0) [cmake] * Qt6QmlPrivate (required version == 6.11.0) [cmake] * Qt6QmlTools (required version >= 6.11.0) [cmake] * Qt6QuickTools (required version >= 6.11.0) [cmake] * Qt6QmlModelsPrivate (required version == 6.11.0) [cmake] * Qt6QmlWorkerScriptPrivate (required version == 6.11.0) [cmake] * Qt6QmlMetaPrivate (required version == 6.11.0) [cmake] * Qt6OpenGLPrivate (required version == 6.11.0) [cmake] * Qt6OpenGL (required version >= 6.11.0) [cmake] * Qt6QuickPrivate (required version == 6.11.0) [cmake] * Qt6QuickTestPrivate (required version == 6.11.0) [cmake] * Qt6QuickTest (required version >= 6.11.0) [cmake] * Qt6 (required version >= 6.11.0) [cmake] [cmake] -- The following OPTIONAL packages have not been found: [cmake] [cmake] * Qt6QmlCompilerPlusPrivateTools (required version >= 6.11.0) [cmake] * PkgConfig [cmake] * SpeechDispatcher [cmake] [cmake] [cmake] -- Configuration summary has been written to D:/qt6/build/Clang_cl-Debug/config.summary [cmake] [cmake] -- Configuring done (26.0s) [cmake] -- Generating done (19.1s) Generating compilation database for Clang-Tidy at "C:\Users\PC\AppData\Local\Temp\QtCreator-TwebwH\Clang-TidyorqeSw" ... Compilation database for Clang-Tidy successfully generated at "C:\Users\PC\AppData\Local\Temp\QtCreator-TwebwH\Clang-TidyorqeSw". Generating compilation database for Clazy at "C:\Users\PC\AppData\Local\Temp\QtCreator-TwebwH\ClazyEUdBal" ... Compilation database for Clazy successfully generated at "C:\Users\PC\AppData\Local\Temp\QtCreator-TwebwH\ClazyEUdBal". [cmake] -- Build files have been written to: D:/qt6/build/Clang_cl-Debug [cmake] [cmake] Elapsed time: 07:54.
almost 8 minutes on a rather beefy intel 14700k, 64gb, dev drive on an nvme ssd, QT_BUILD_TESTS in a top-level build will create quite a huge number of targets, if i only enable the unit tests for qtmultimedia, it's still 2 minutes
doing some quick profiling with very sleepy, gives indicates that the filesystem watcher is the main culprit here:
WaitForMultipleObjects KERNELBASE [unknown] 0 0x7ffc5470de11 QFileSystemWatcher::tr Qt6Core [unknown] 0 0x7ffbc965820d QThread::start Qt6Core [unknown] 0 0x7ffbc95f69d2 BaseThreadInitThunk KERNEL32 [unknown] 0 0x7ffc55fde8d7 RtlUserThreadStart ntdll [unknown] 0 0x7ffc56f7c34c
makes me wonder if there is any way to improve the situation
Attachments
Gerrit Reviews
For Gerrit Dashboard: QTCREATORBUG-33173 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
656990,1 | WIP: CMakePM: Build without a file watcher | 17.0 | qt-creator/qt-creator | Status: NEW | -2 | +1 |