diff options
| author | Tobias Hunger <tobias.hunger@qt.io> | 2016-11-15 17:26:08 +0100 |
|---|---|---|
| committer | Tobias Hunger <tobias.hunger@qt.io> | 2016-11-15 16:27:21 +0000 |
| commit | eff07681009e9e971966e02fb5418b96f7455cc3 (patch) | |
| tree | 960e08d9597641e9fa1dc58f1d038e7be0b1a53a | |
| parent | 7b467cbad6969fc0532014eaef6f2fbbf25bdf24 (diff) | |
| download | qt-creator-eff07681009e9e971966e02fb5418b96f7455cc3.tar.gz | |
CMake: Fix server-mode trimming out targets every second time
Do not trim out targets every second time the project tree is generated.
Change-Id: I6ed9cd7bb6b2e88ec6dbe063f90719ffacffdd61
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
| -rw-r--r-- | src/plugins/cmakeprojectmanager/servermodereader.cpp | 21 | ||||
| -rw-r--r-- | src/plugins/cmakeprojectmanager/servermodereader.h | 10 |
2 files changed, 12 insertions, 19 deletions
diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 3fbf31ba26..d0e8aeba06 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -672,12 +672,11 @@ QSet<Node *> ServerModeReader::updateTargets(CMakeListsNode *root, { QSet<Node *> 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<Node *> ServerModeReader::updateFileGroups(ProjectNode *targetRoot, - const Utils::FileName &sourceDirectory, - const Utils::FileName &buildDirectory, - const QList<ServerModeReader::FileGroup *> &fileGroups, - const QHash<FileName, QList<FileNode *> > &headers) +void ServerModeReader::updateFileGroups(ProjectNode *targetRoot, + const Utils::FileName &sourceDirectory, + const Utils::FileName &buildDirectory, + const QList<ServerModeReader::FileGroup *> &fileGroups, + const QHash<FileName, QList<FileNode *> > &headers) { - QSet<Node *> usedNodes; QList<FileNode *> toList; QSet<Utils::FileName> alreadyListed; for (const FileGroup *f : fileGroups) { @@ -733,11 +731,6 @@ QSet<Node *> ServerModeReader::updateFileGroups(ProjectNode *targetRoot, } targetRoot->buildTree(toList, sourceDirectory); - - foreach (FileNode *fn, toList) - usedNodes.insert(static_cast<Node *>(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 d49d3c48dc..329db12189 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.h +++ b/src/plugins/cmakeprojectmanager/servermodereader.h @@ -127,11 +127,11 @@ private: QSet<ProjectExplorer::Node *> updateTargets(CMakeListsNode *root, const QList<Target *> &targets, const QHash<Utils::FileName, QList<ProjectExplorer::FileNode *>> &headers); - QSet<ProjectExplorer::Node *> updateFileGroups(ProjectExplorer::ProjectNode *targetRoot, - const Utils::FileName &sourceDirectory, - const Utils::FileName &buildDirectory, - const QList<FileGroup *> &fileGroups, - const QHash<Utils::FileName, QList<ProjectExplorer::FileNode *>> &headers); + void updateFileGroups(ProjectExplorer::ProjectNode *targetRoot, + const Utils::FileName &sourceDirectory, + const Utils::FileName &buildDirectory, + const QList<FileGroup *> &fileGroups, + const QHash<Utils::FileName, QList<ProjectExplorer::FileNode *>> &headers); bool m_hasData = false; |
