forked from qt-creator/qt-creator
CMake: Do not create file system node in main thread
The file system scanning was already in a thread, but creating a tree from the flat list of file nodes was still done in the main thread. Creating the tree looks for and creates folder nodes as needed for each file node, which is not that big of a deal but still takes 1/3 of a second for the Qt Creator source tree. Task-number: QTCREATORBUG-25783 Change-Id: I28948ed3ff5233f6fc4b86e93da94d882b81e231 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -209,14 +209,16 @@ bool FileApiReader::usesAllCapsTargets() const
|
||||
}
|
||||
|
||||
std::unique_ptr<CMakeProjectNode> FileApiReader::generateProjectTree(
|
||||
const QList<const FileNode *> &allFiles, QString &errorMessage, bool includeHeaderNodes)
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles,
|
||||
QString &errorMessage,
|
||||
bool includeHeaderNodes)
|
||||
{
|
||||
Q_UNUSED(errorMessage)
|
||||
|
||||
if (includeHeaderNodes) {
|
||||
addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles);
|
||||
addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles.allFiles);
|
||||
}
|
||||
addFileSystemNodes(m_rootProjectNode.get(), allFiles);
|
||||
addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
|
||||
return std::exchange(m_rootProjectNode, {});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user