CMakeProject: Simplify tree generation helper function

The sets of used nodes are not needed anymore.

Change-Id: I308fa140779f8a108fa23907f0959cf35100d67f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-01-26 15:54:29 +01:00
parent beaba559a5
commit f12fb1496f
2 changed files with 11 additions and 30 deletions

View File

@@ -538,11 +538,8 @@ void ServerModeReader::extractCacheData(const QVariantMap &data)
m_cmakeCache = config; m_cmakeCache = config;
} }
QSet<Node *> ServerModeReader::updateCMakeLists(CMakeListsNode *root, void ServerModeReader::updateCMakeLists(CMakeListsNode *root, const QList<FileNode *> &cmakeLists)
const QList<FileNode *> &cmakeLists)
{ {
QSet<Node *> usedNodes;
const QDir baseDir = QDir(m_parameters.sourceDirectory.toString()); const QDir baseDir = QDir(m_parameters.sourceDirectory.toString());
QHash<QString, FileNode *> nodeHash; QHash<QString, FileNode *> nodeHash;
@@ -588,8 +585,6 @@ QSet<Node *> ServerModeReader::updateCMakeLists(CMakeListsNode *root,
cmFn = fn; cmFn = fn;
cmln->addFileNodes({ cmFn }); cmln->addFileNodes({ cmFn });
} }
usedNodes.insert(cmFn); // register existing CMakeLists.txt filenode
// Update displayName of CMakeListsNode: // Update displayName of CMakeListsNode:
const QString dn = prefix.isEmpty() ? k : k.mid(prefix.count() + 1); const QString dn = prefix.isEmpty() ? k : k.mid(prefix.count() + 1);
if (!dn.isEmpty()) if (!dn.isEmpty())
@@ -597,8 +592,6 @@ QSet<Node *> ServerModeReader::updateCMakeLists(CMakeListsNode *root,
knownNodes.insert(k, cmln); knownNodes.insert(k, cmln);
} }
return usedNodes;
} }
static CMakeListsNode *findCMakeNode(CMakeListsNode *root, const Utils::FileName &dir) static CMakeListsNode *findCMakeNode(CMakeListsNode *root, const Utils::FileName &dir)
@@ -649,12 +642,10 @@ static CMakeProjectNode *findOrCreateProjectNode(CMakeListsNode *root, const Uti
return pn; return pn;
} }
QSet<Node *> ServerModeReader::updateProjects(CMakeListsNode *root, void ServerModeReader::updateProjects(CMakeListsNode *root,
const QList<Project *> &projects, const QList<Project *> &projects,
const QList<const FileNode *> &allFiles) const QList<const FileNode *> &allFiles)
{ {
QSet<Node *> usedNodes;
QHash<Utils::FileName, QList<const FileNode *>> includeFiles; QHash<Utils::FileName, QList<const FileNode *>> includeFiles;
for (const FileNode *f : allFiles) { for (const FileNode *f : allFiles) {
if (f->fileType() != FileType::Header) if (f->fileType() != FileType::Header)
@@ -665,11 +656,8 @@ QSet<Node *> ServerModeReader::updateProjects(CMakeListsNode *root,
for (const Project *p : projects) { for (const Project *p : projects) {
CMakeProjectNode *pNode = findOrCreateProjectNode(root, p->sourceDirectory, p->name); CMakeProjectNode *pNode = findOrCreateProjectNode(root, p->sourceDirectory, p->name);
QTC_ASSERT(pNode, continue); QTC_ASSERT(pNode, continue);
usedNodes.insert(pNode); // Mark as leaf to keep. updateTargets(root, p->targets, includeFiles);
usedNodes.unite(updateTargets(root, p->targets, includeFiles));
} }
return usedNodes;
} }
static CMakeTargetNode *findOrCreateTargetNode(CMakeListsNode *root, const Utils::FileName &dir, static CMakeTargetNode *findOrCreateTargetNode(CMakeListsNode *root, const Utils::FileName &dir,
@@ -690,19 +678,15 @@ static CMakeTargetNode *findOrCreateTargetNode(CMakeListsNode *root, const Utils
return tn; return tn;
} }
QSet<Node *> ServerModeReader::updateTargets(CMakeListsNode *root, void ServerModeReader::updateTargets(CMakeListsNode *root,
const QList<ServerModeReader::Target *> &targets, const QList<ServerModeReader::Target *> &targets,
const QHash<FileName, QList<const FileNode *>> &headers) const QHash<FileName, QList<const FileNode *>> &headers)
{ {
QSet<Node *> usedNodes;
for (const Target *t : targets) { for (const Target *t : targets) {
CMakeTargetNode *tNode = findOrCreateTargetNode(root, t->sourceDirectory, t->name); CMakeTargetNode *tNode = findOrCreateTargetNode(root, t->sourceDirectory, t->name);
tNode->setTargetInformation(t->artifacts, t->type); tNode->setTargetInformation(t->artifacts, t->type);
usedNodes.insert(tNode); // always keep the target node: FileGroups use buildTree!
updateFileGroups(tNode, t->sourceDirectory, t->buildDirectory, t->fileGroups, headers); updateFileGroups(tNode, t->sourceDirectory, t->buildDirectory, t->fileGroups, headers);
} }
return usedNodes;
} }
void ServerModeReader::updateFileGroups(ProjectNode *targetRoot, void ServerModeReader::updateFileGroups(ProjectNode *targetRoot,

View File

@@ -119,13 +119,10 @@ private:
void extractCMakeInputsData(const QVariantMap &data); void extractCMakeInputsData(const QVariantMap &data);
void extractCacheData(const QVariantMap &data); void extractCacheData(const QVariantMap &data);
QSet<ProjectExplorer::Node *> updateCMakeLists(CMakeListsNode *root, void updateCMakeLists(CMakeListsNode *root, const QList<ProjectExplorer::FileNode *> &cmakeLists);
const QList<ProjectExplorer::FileNode *> &cmakeLists); void updateProjects(CMakeListsNode *root, const QList<Project *> &projects,
QSet<ProjectExplorer::Node *> updateProjects(CMakeListsNode *root,
const QList<Project *> &projects,
const QList<const ProjectExplorer::FileNode *> &allFiles); const QList<const ProjectExplorer::FileNode *> &allFiles);
QSet<ProjectExplorer::Node *> updateTargets(CMakeListsNode *root, void updateTargets(CMakeListsNode *root, const QList<Target *> &targets,
const QList<Target *> &targets,
const QHash<Utils::FileName, QList<const ProjectExplorer::FileNode *>> &headers); const QHash<Utils::FileName, QList<const ProjectExplorer::FileNode *>> &headers);
void updateFileGroups(ProjectExplorer::ProjectNode *targetRoot, void updateFileGroups(ProjectExplorer::ProjectNode *targetRoot,
const Utils::FileName &sourceDirectory, const Utils::FileName &sourceDirectory,