forked from qt-creator/qt-creator
CMake: Return an empty project tree if parsing failed
This triggers the logic in Project to show the top level project file in the project tree. Remove similar logic in CMake. Change-Id: I2bfdd3f5e3d4126910a3feb480cec5ef689954ed Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Florian Apolloner <florian@apolloner.eu>
This commit is contained in:
committed by
Florian Apolloner
parent
7062fd5138
commit
64c5f960e8
@@ -277,10 +277,6 @@ void BuildDirManager::generateProjectTree(CMakeProjectNode *root, const QList<co
|
||||
const Utils::FileName projectFile = m_buildConfiguration->target()->project()->projectFilePath();
|
||||
|
||||
m_reader->generateProjectTree(root, allFiles);
|
||||
|
||||
// Make sure the top level CMakeLists.txt is always visible:
|
||||
if (root->isEmpty())
|
||||
root->addNode(new FileNode(projectFile, FileType::Project, false));
|
||||
}
|
||||
|
||||
void BuildDirManager::updateCodeModel(CppTools::RawProjectParts &rpps)
|
||||
|
@@ -221,6 +221,10 @@ CMakeBuildConfiguration::generateProjectTree(const QList<const FileNode*> &allFi
|
||||
|
||||
auto root = new CMakeProjectNode(target()->project()->projectDirectory());
|
||||
m_buildDirManager->generateProjectTree(root, allFiles);
|
||||
if (root->isEmpty()) {
|
||||
delete root;
|
||||
return nullptr;
|
||||
}
|
||||
return root;
|
||||
}
|
||||
|
||||
|
@@ -147,8 +147,8 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc)
|
||||
|
||||
auto newRoot = bc->generateProjectTree(m_allFiles);
|
||||
if (newRoot) {
|
||||
setRootProjectNode(newRoot);
|
||||
setDisplayName(newRoot->displayName());
|
||||
setRootProjectNode(newRoot);
|
||||
}
|
||||
|
||||
updateApplicationAndDeploymentTargets();
|
||||
|
@@ -741,6 +741,9 @@ void ServerModeReader::addFileGroups(ProjectNode *targetRoot,
|
||||
void ServerModeReader::addHeaderNodes(ProjectNode *root, const QList<FileNode *> knownHeaders,
|
||||
const QList<const FileNode *> &allFiles)
|
||||
{
|
||||
if (root->isEmpty())
|
||||
return;
|
||||
|
||||
auto headerNode = new VirtualFolderNode(root->filePath(), Node::DefaultPriority - 5);
|
||||
headerNode->setDisplayName(tr("<Headers>"));
|
||||
|
||||
|
@@ -270,6 +270,9 @@ CMakeConfig TeaLeafReader::takeParsedConfiguration()
|
||||
|
||||
void TeaLeafReader::generateProjectTree(CMakeProjectNode *root, const QList<const FileNode *> &allFiles)
|
||||
{
|
||||
if (m_files.isEmpty())
|
||||
return;
|
||||
|
||||
root->setDisplayName(m_projectName);
|
||||
|
||||
// Delete no longer necessary file watcher based on m_cmakeFiles:
|
||||
|
Reference in New Issue
Block a user