-
Bug
-
Resolution: Fixed
-
Not Evaluated
-
None
-
Qt Creator 4.1.0, Qt Creator 4.2.0-beta1
-
None
-
Debian unstable
Qt 5.6.1
CMake 3.6
-
669d04a686418541f83a1936d4b278721ec986fe
I've created a CMake based project and it hangs quite long in "Configuring project". Turning on logging shows:
[debug] QtCreator (projectmodels.cpp:826) - FlatModel::foldersAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "session"
[debug] QtCreator (projectmodels.cpp:437) - found 1 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "session" 1 nodes
[debug] QtCreator (projectmodels.cpp:660) - updated m_childNodes
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 0 nodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 1 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 1 nodes
[debug] QtCreator (projectmodels.cpp:660) - updated m_childNodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 2 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 2 nodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 3 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 3 nodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 4 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 4 nodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 5 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 5 nodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 6 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 6 nodes
[debug] QtCreator (projectmodels.cpp:895) - FlatModel::filesAboutToBeAdded
[debug] QtCreator (projectmodels.cpp:422) - FlatModel::childNodes for "/home/florian/sources/bap_server/so/CMakeLists.txt"
[debug] QtCreator (projectmodels.cpp:437) - found 7 nodes
[debug] QtCreator (projectmodels.cpp:610) - FlatModel::added "/home/florian/sources/bap_server/so/CMakeLists.txt" 7 nodes
and many many more lines like that increasing to more and more nodes
This means that https://github.com/qtproject/qt-creator/blob/master/src/plugins/projectexplorer/projectmodels.cpp#L436 is called really really really often and this is quite expensive to do. Disabling the sorting (and getting rid of the isSorted asserts) makes it return fast. Can I somehow provide the cmake output which gets parsed to help debugging that?