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