diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 610cc3d8885..000a6a376ef 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -532,14 +532,11 @@ void ServerModeReader::extractCacheData(const QVariantMap &data) void ServerModeReader::addCMakeLists(CMakeProjectNode *root, const QList &cmakeLists) { - const QDir baseDir = QDir(m_parameters.sourceDirectory.toString()); - + const QSet cmakeDirs + = Utils::transform(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); }); }