forked from qt-creator/qt-creator
CMakePM: Display <File System> tree node only on failure
Fixes: QTCREATORBUG-25994
Fixes: QTCREATORBUG-25974
Change-Id: I383fe5c28d1f71c8f7939bc9fe4f1f0bf1d6a01b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
(cherry picked from commit 36a0151c6d
)
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -527,11 +527,9 @@ void CMakeBuildSystem::clearCMakeCache()
|
||||
}
|
||||
|
||||
std::unique_ptr<CMakeProjectNode> CMakeBuildSystem::generateProjectTree(
|
||||
const TreeScanner::Result &allFiles, bool includeHeaderNodes)
|
||||
const TreeScanner::Result &allFiles, bool failedToParse)
|
||||
{
|
||||
QString errorMessage;
|
||||
auto root = m_reader.generateProjectTree(allFiles, errorMessage, includeHeaderNodes);
|
||||
checkAndReportError(errorMessage);
|
||||
auto root = m_reader.generateProjectTree(allFiles, failedToParse);
|
||||
return root;
|
||||
}
|
||||
|
||||
@@ -604,7 +602,7 @@ void CMakeBuildSystem::updateProjectData()
|
||||
|
||||
Project *p = project();
|
||||
{
|
||||
auto newRoot = generateProjectTree(m_allFiles, true);
|
||||
auto newRoot = generateProjectTree(m_allFiles, false);
|
||||
if (newRoot) {
|
||||
setRootProjectNode(std::move(newRoot));
|
||||
|
||||
@@ -703,7 +701,7 @@ void CMakeBuildSystem::updateFallbackProjectData()
|
||||
|
||||
QTC_ASSERT(m_treeScanner.isFinished() && !m_reader.isParsing(), return );
|
||||
|
||||
auto newRoot = generateProjectTree(m_allFiles, false);
|
||||
auto newRoot = generateProjectTree(m_allFiles, true);
|
||||
setRootProjectNode(std::move(newRoot));
|
||||
|
||||
qCDebug(cmakeBuildSystemLog) << "All fallback CMake project data up to date.";
|
||||
|
@@ -133,7 +133,7 @@ private:
|
||||
void combineScanAndParse();
|
||||
|
||||
std::unique_ptr<CMakeProjectNode> generateProjectTree(
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles, bool includeHeadersNode);
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse);
|
||||
void checkAndReportError(QString &errorMessage);
|
||||
|
||||
void updateCMakeConfiguration(QString &errorMessage);
|
||||
|
@@ -217,16 +217,13 @@ bool FileApiReader::usesAllCapsTargets() const
|
||||
}
|
||||
|
||||
std::unique_ptr<CMakeProjectNode> FileApiReader::generateProjectTree(
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles,
|
||||
QString &errorMessage,
|
||||
bool includeHeaderNodes)
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse)
|
||||
{
|
||||
Q_UNUSED(errorMessage)
|
||||
|
||||
if (includeHeaderNodes) {
|
||||
if (failedToParse)
|
||||
addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
|
||||
else
|
||||
addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles.allFiles);
|
||||
}
|
||||
addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
|
||||
|
||||
return std::exchange(m_rootProjectNode, {});
|
||||
}
|
||||
|
||||
|
@@ -72,9 +72,7 @@ public:
|
||||
CMakeConfig takeParsedConfiguration(QString &errorMessage);
|
||||
QString ctestPath() const;
|
||||
std::unique_ptr<CMakeProjectNode> generateProjectTree(
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles,
|
||||
QString &errorMessage,
|
||||
bool includeHeaderNodes);
|
||||
const ProjectExplorer::TreeScanner::Result &allFiles, bool failedToParse);
|
||||
ProjectExplorer::RawProjectParts createRawProjectParts(QString &errorMessage);
|
||||
|
||||
bool isMultiConfig() const;
|
||||
|
Reference in New Issue
Block a user