forked from qt-creator/qt-creator
CMake: Speed up server-mode
Use a QSet to avoid having to search in a QList. Change-Id: I2261a83acd3924a8483495e1f03322c7574a78a8 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -532,14 +532,11 @@ void ServerModeReader::extractCacheData(const QVariantMap &data)
|
|||||||
|
|
||||||
void ServerModeReader::addCMakeLists(CMakeProjectNode *root, const QList<FileNode *> &cmakeLists)
|
void ServerModeReader::addCMakeLists(CMakeProjectNode *root, const QList<FileNode *> &cmakeLists)
|
||||||
{
|
{
|
||||||
const QDir baseDir = QDir(m_parameters.sourceDirectory.toString());
|
const QSet<Utils::FileName> cmakeDirs
|
||||||
|
= Utils::transform<QSet>(cmakeLists, [](const Node *n) { return n->filePath().parentDir(); });
|
||||||
root->addNestedNodes(cmakeLists, Utils::FileName(),
|
root->addNestedNodes(cmakeLists, Utils::FileName(),
|
||||||
[&cmakeLists](const Utils::FileName &fp) -> ProjectExplorer::FolderNode * {
|
[&cmakeDirs](const Utils::FileName &fp) -> ProjectExplorer::FolderNode * {
|
||||||
if (Utils::contains(cmakeLists, [&fp](const FileNode *fn) { return fn->filePath().parentDir() == fp; }))
|
return cmakeDirs.contains(fp) ? new CMakeListsNode(fp) : new FolderNode(fp);
|
||||||
return new CMakeListsNode(fp);
|
|
||||||
else
|
|
||||||
return new FolderNode(fp);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user