CMakePM: Remove <Headers> virtual project node

CMake projects need to add the headers as source files in order to get
exported from the CMake file-api json export.

Having header files that are not part of the project displayed in the
<Headers> node is error prone and confusing.

This also means that you won't get bogus files when doing git commit
for example.

Fixes: QTCREATORBUG-18206
Fixes: QTCREATORBUG-24609
Fixes: QTCREATORBUG-25407
Change-Id: I89ac4f8a80f452119f8a991b9e4ef14efb7a86b9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Cristian Adam
2021-09-22 15:55:15 +02:00
parent 95907b0f7d
commit d341ab6371
6 changed files with 13 additions and 70 deletions

View File

@@ -98,7 +98,6 @@ void FileApiReader::resetData()
m_buildTargets.clear();
m_projectParts.clear();
m_rootProjectNode.reset();
m_knownHeaders.clear();
}
void FileApiReader::parse(bool forceCMakeRun,
@@ -220,8 +219,6 @@ std::unique_ptr<CMakeProjectNode> FileApiReader::generateProjectTree(
{
if (failedToParse)
addFileSystemNodes(m_rootProjectNode.get(), allFiles.folderNode);
else
addHeaderNodes(m_rootProjectNode.get(), m_knownHeaders, allFiles.allFiles);
return std::exchange(m_rootProjectNode, {});
}
@@ -291,7 +288,6 @@ void FileApiReader::endState(const FilePath &replyFilePath, bool restoredFromBac
m_buildTargets = std::move(value->buildTargets);
m_projectParts = std::move(value->projectParts);
m_rootProjectNode = std::move(value->rootProjectNode);
m_knownHeaders = std::move(value->knownHeaders);
m_ctestPath = std::move(value->ctestPath);
m_isMultiConfig = std::move(value->isMultiConfig);
m_usesAllCapsTargets = std::move(value->usesAllCapsTargets);