CMake: Use a CMakeProjectNode as top level cmake node

Change-Id: I6e68b971cf490b9b064a2866bd99865a7f4a7bd9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2017-03-14 15:35:02 +01:00
parent b8417e0f0c
commit 6e91fe5046
10 changed files with 25 additions and 23 deletions

View File

@@ -257,7 +257,7 @@ bool BuildDirManager::persistCMakeState()
return true;
}
void BuildDirManager::generateProjectTree(CMakeListsNode *root, const QList<const FileNode *> &allFiles)
void BuildDirManager::generateProjectTree(CMakeProjectNode *root, const QList<const FileNode *> &allFiles)
{
QTC_ASSERT(m_reader, return);

View File

@@ -69,7 +69,7 @@ public:
bool updateCMakeStateBeforeBuild();
bool persistCMakeState();
void generateProjectTree(CMakeListsNode *root,
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles);
void updateCodeModel(CppTools::RawProjectParts &rpps);

View File

@@ -42,7 +42,7 @@ namespace CMakeProjectManager {
namespace Internal {
class CMakeBuildConfiguration;
class CMakeListsNode;
class CMakeProjectNode;
class BuildDirReader : public QObject
{
@@ -95,7 +95,7 @@ public:
virtual CMakeConfig takeParsedConfiguration() = 0;
virtual QList<CMakeBuildTarget> buildTargets() const = 0;
virtual void generateProjectTree(CMakeListsNode *root,
virtual void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) = 0;
virtual void updateCodeModel(CppTools::RawProjectParts &rpps) = 0;

View File

@@ -215,13 +215,13 @@ QList<CMakeBuildTarget> CMakeBuildConfiguration::buildTargets() const
return m_buildDirManager->buildTargets();
}
CMakeListsNode *
CMakeProjectNode *
CMakeBuildConfiguration::generateProjectTree(const QList<const FileNode*> &allFiles) const
{
auto root = new CMakeListsNode(target()->project()->projectDirectory());
if (!m_buildDirManager || m_buildDirManager->isParsing())
return nullptr;
auto root = new CMakeProjectNode(target()->project()->projectDirectory());
m_buildDirManager->generateProjectTree(root, allFiles);
return root;
}

View File

@@ -47,7 +47,7 @@ namespace Internal {
class BuildDirManager;
class CMakeBuildConfigurationFactory;
class CMakeBuildSettingsWidget;
class CMakeListsNode;
class CMakeProjectNode;
class CMakeBuildConfiguration : public ProjectExplorer::BuildConfiguration
{
@@ -86,7 +86,7 @@ public:
void clearCache();
QList<CMakeBuildTarget> buildTargets() const;
CMakeListsNode *generateProjectTree(const QList<const ProjectExplorer::FileNode *> &allFiles) const;
CMakeProjectManager::Internal::CMakeProjectNode *generateProjectTree(const QList<const ProjectExplorer::FileNode *> &allFiles) const;
void updateCodeModel(CppTools::RawProjectParts &rpps);
static Utils::FileName

View File

@@ -231,7 +231,7 @@ static void addCMakeVFolder(FolderNode *base, const Utils::FileName &basePath, i
fn->compress();
}
static void addCMakeInputs(CMakeListsNode *root,
static void addCMakeInputs(FolderNode *root,
const Utils::FileName &sourceDir,
const Utils::FileName &buildDir,
QList<FileNode *> &sourceInputs,
@@ -252,7 +252,7 @@ static void addCMakeInputs(CMakeListsNode *root,
rootInputs);
}
void ServerModeReader::generateProjectTree(CMakeListsNode *root,
void ServerModeReader::generateProjectTree(CMakeProjectNode *root,
const QList<const FileNode *> &allFiles)
{
// Split up cmake inputs into useful chunks:
@@ -527,7 +527,7 @@ void ServerModeReader::extractCacheData(const QVariantMap &data)
m_cmakeCache = config;
}
void ServerModeReader::addCMakeLists(CMakeListsNode *root, const QList<FileNode *> &cmakeLists)
void ServerModeReader::addCMakeLists(CMakeProjectNode *root, const QList<FileNode *> &cmakeLists)
{
const QDir baseDir = QDir(m_parameters.sourceDirectory.toString());
@@ -540,7 +540,7 @@ void ServerModeReader::addCMakeLists(CMakeListsNode *root, const QList<FileNode
});
}
static CMakeListsNode *findCMakeNode(CMakeListsNode *root, const Utils::FileName &dir)
static CMakeListsNode *findCMakeNode(FolderNode *root, const Utils::FileName &dir)
{
const Utils::FileName stepDir = dir;
const Utils::FileName topDir = root->filePath();
@@ -558,7 +558,7 @@ static CMakeListsNode *findCMakeNode(CMakeListsNode *root, const Utils::FileName
return dynamic_cast<CMakeListsNode *>(result);
}
static CMakeProjectNode *findOrCreateProjectNode(CMakeListsNode *root, const Utils::FileName &dir,
static CMakeProjectNode *findOrCreateProjectNode(FolderNode *root, const Utils::FileName &dir,
const QString &displayName)
{
CMakeListsNode *cmln = findCMakeNode(root, dir);
@@ -576,7 +576,7 @@ static CMakeProjectNode *findOrCreateProjectNode(CMakeListsNode *root, const Uti
return pn;
}
void ServerModeReader::addProjects(CMakeListsNode *root,
void ServerModeReader::addProjects(CMakeProjectNode *root,
const QList<Project *> &projects,
const QList<const FileNode *> &allFiles)
{
@@ -595,7 +595,7 @@ void ServerModeReader::addProjects(CMakeListsNode *root,
}
}
static CMakeTargetNode *findOrCreateTargetNode(CMakeListsNode *root, const Utils::FileName &dir,
static CMakeTargetNode *findOrCreateTargetNode(FolderNode *root, const Utils::FileName &dir,
const QString &displayName)
{
CMakeListsNode *cmln = findCMakeNode(root, dir);
@@ -613,7 +613,7 @@ static CMakeTargetNode *findOrCreateTargetNode(CMakeListsNode *root, const Utils
return tn;
}
void ServerModeReader::addTargets(CMakeListsNode *root,
void ServerModeReader::addTargets(CMakeProjectNode *root,
const QList<ServerModeReader::Target *> &targets,
const QHash<FileName, QList<const FileNode *>> &headers)
{

View File

@@ -33,6 +33,8 @@
namespace CMakeProjectManager {
namespace Internal {
class CMakeListsNode;
class ServerModeReader : public BuildDirReader
{
Q_OBJECT
@@ -54,7 +56,7 @@ public:
QList<CMakeBuildTarget> buildTargets() const final;
CMakeConfig takeParsedConfiguration() final;
void generateProjectTree(CMakeListsNode *root,
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
void updateCodeModel(CppTools::RawProjectParts &rpps) final;
@@ -111,10 +113,10 @@ private:
void extractCMakeInputsData(const QVariantMap &data);
void extractCacheData(const QVariantMap &data);
void addCMakeLists(CMakeListsNode *root, const QList<ProjectExplorer::FileNode *> &cmakeLists);
void addProjects(CMakeListsNode *root, const QList<Project *> &projects,
void addCMakeLists(CMakeProjectNode *root, const QList<ProjectExplorer::FileNode *> &cmakeLists);
void addProjects(CMakeProjectNode *root, const QList<Project *> &projects,
const QList<const ProjectExplorer::FileNode *> &allFiles);
void addTargets(CMakeListsNode *root, const QList<Target *> &targets,
void addTargets(CMakeProjectNode *root, const QList<Target *> &targets,
const QHash<Utils::FileName, QList<const ProjectExplorer::FileNode *>> &headers);
void addFileGroups(ProjectExplorer::ProjectNode *targetRoot,
const Utils::FileName &sourceDirectory,

View File

@@ -264,7 +264,7 @@ CMakeConfig TeaLeafReader::takeParsedConfiguration()
return result;
}
void TeaLeafReader::generateProjectTree(CMakeListsNode *root, const QList<const FileNode *> &allFiles)
void TeaLeafReader::generateProjectTree(CMakeProjectNode *root, const QList<const FileNode *> &allFiles)
{
root->setDisplayName(m_projectName);

View File

@@ -56,7 +56,7 @@ public:
QList<CMakeBuildTarget> buildTargets() const final;
CMakeConfig takeParsedConfiguration() final;
void generateProjectTree(CMakeListsNode *root,
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
void updateCodeModel(CppTools::RawProjectParts &rpps) final;

View File

@@ -419,7 +419,7 @@ void Project::setDocument(Core::IDocument *doc)
d->m_document = doc;
if (!d->m_rootProjectNode) {
auto newRoot = new ProjectNode(projectDirectory());
auto newRoot = new ProjectNode(projectFilePath());
newRoot->setDisplayName(displayName());
newRoot->addNode(new FileNode(projectFilePath(), FileType::Project, false));
setRootProjectNode(newRoot);