diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 3fbf31ba26b..d0e8aeba062 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -672,12 +672,11 @@ QSet ServerModeReader::updateTargets(CMakeListsNode *root, { QSet usedNodes; for (const Target *t : targets) { - CMakeTargetNode *tNode = findOrCreateTargetNode(root, t->sourceDirectory, t->name); tNode->setTargetInformation(t->artifacts, t->type); + usedNodes.insert(tNode); // always keep the target node: FileGroups use buildTree! - usedNodes.unite(updateFileGroups(tNode, t->sourceDirectory, t->buildDirectory, - t->fileGroups, headers)); + updateFileGroups(tNode, t->sourceDirectory, t->buildDirectory, t->fileGroups, headers); } return usedNodes; } @@ -695,13 +694,12 @@ static Utils::FileName mapFileName(const Utils::FileName &fn, const Utils::FileN return fn; } -QSet ServerModeReader::updateFileGroups(ProjectNode *targetRoot, - const Utils::FileName &sourceDirectory, - const Utils::FileName &buildDirectory, - const QList &fileGroups, - const QHash > &headers) +void ServerModeReader::updateFileGroups(ProjectNode *targetRoot, + const Utils::FileName &sourceDirectory, + const Utils::FileName &buildDirectory, + const QList &fileGroups, + const QHash > &headers) { - QSet usedNodes; QList toList; QSet alreadyListed; for (const FileGroup *f : fileGroups) { @@ -733,11 +731,6 @@ QSet ServerModeReader::updateFileGroups(ProjectNode *targetRoot, } targetRoot->buildTree(toList, sourceDirectory); - - foreach (FileNode *fn, toList) - usedNodes.insert(static_cast(fn)); // Mark all leaves as keeper! - - return usedNodes; } } // namespace Internal diff --git a/src/plugins/cmakeprojectmanager/servermodereader.h b/src/plugins/cmakeprojectmanager/servermodereader.h index d49d3c48dc0..329db12189e 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.h +++ b/src/plugins/cmakeprojectmanager/servermodereader.h @@ -127,11 +127,11 @@ private: QSet updateTargets(CMakeListsNode *root, const QList &targets, const QHash> &headers); - QSet updateFileGroups(ProjectExplorer::ProjectNode *targetRoot, - const Utils::FileName &sourceDirectory, - const Utils::FileName &buildDirectory, - const QList &fileGroups, - const QHash> &headers); + void updateFileGroups(ProjectExplorer::ProjectNode *targetRoot, + const Utils::FileName &sourceDirectory, + const Utils::FileName &buildDirectory, + const QList &fileGroups, + const QHash> &headers); bool m_hasData = false;