forked from qt-creator/qt-creator
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:
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user