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)
|
||||
{
|
||||
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(),
|
||||
[&cmakeLists](const Utils::FileName &fp) -> ProjectExplorer::FolderNode * {
|
||||
if (Utils::contains(cmakeLists, [&fp](const FileNode *fn) { return fn->filePath().parentDir() == fp; }))
|
||||
return new CMakeListsNode(fp);
|
||||
else
|
||||
return new FolderNode(fp);
|
||||
[&cmakeDirs](const Utils::FileName &fp) -> ProjectExplorer::FolderNode * {
|
||||
return cmakeDirs.contains(fp) ? new CMakeListsNode(fp) : new FolderNode(fp);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user