diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp index 13c99c5bfb4..5c50ce0c977 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp @@ -503,8 +503,7 @@ void addCompileGroups(ProjectNode *targetRoot, const Utils::FilePath &topSourceDirectory, const Utils::FilePath &sourceDirectory, const Utils::FilePath &buildDirectory, - const TargetDetails &td, - QSet &knownHeaderNodes) + const TargetDetails &td) { const bool inSourceBuild = (sourceDirectory == buildDirectory); @@ -532,10 +531,6 @@ void addCompileGroups(ProjectNode *targetRoot, auto node = std::make_unique(sourcePath, Node::fileTypeForFileName(sourcePath)); node->setIsGenerated(si.isGenerated); - // Register headers: - if (node->fileType() == FileType::Header) - knownHeaderNodes.insert(node->filePath()); - // Where does the file node need to go? if (sourcePath.isChildOf(buildDirectory) && !inSourceBuild) { buildFileNodes.emplace_back(std::move(node)); @@ -583,8 +578,7 @@ void addTargets(const QHash &cm const Configuration &config, const std::vector &targetDetails, const FilePath &sourceDir, - const FilePath &buildDir, - QSet &knownHeaderNodes) + const FilePath &buildDir) { for (const FileApiDetails::Target &t : config.targets) { const TargetDetails &td = Utils::findOrDefault(targetDetails, @@ -598,42 +592,37 @@ void addTargets(const QHash &cm tNode->setTargetInformation(td.artifacts, td.type); tNode->setBuildDirectory(directoryBuildDir(config, buildDir, t.directory)); - addCompileGroups(tNode, sourceDir, dir, tNode->buildDirectory(), td, knownHeaderNodes); + addCompileGroups(tNode, sourceDir, dir, tNode->buildDirectory(), td); } } -std::pair, QSet> generateRootProjectNode( +std::unique_ptr generateRootProjectNode( PreprocessedData &data, const FilePath &sourceDirectory, const FilePath &buildDirectory) { - std::pair, QSet> result; - result.first = std::make_unique(sourceDirectory); + std::unique_ptr result = std::make_unique(sourceDirectory); const FileApiDetails::Project topLevelProject = findOrDefault(data.codemodel.projects, equal(&FileApiDetails::Project::parent, -1)); if (!topLevelProject.name.isEmpty()) - result.first->setDisplayName(topLevelProject.name); + result->setDisplayName(topLevelProject.name); else - result.first->setDisplayName(sourceDirectory.fileName()); + result->setDisplayName(sourceDirectory.fileName()); - QHash cmakeListsNodes = addCMakeLists(result.first.get(), + QHash cmakeListsNodes = addCMakeLists(result.get(), std::move(data.cmakeListNodes)); data.cmakeListNodes.clear(); // Remove all the nullptr in the vector... - QSet knownHeaders; addProjects(cmakeListsNodes, data.codemodel, sourceDirectory); addTargets(cmakeListsNodes, data.codemodel, data.targetDetails, sourceDirectory, - buildDirectory, - knownHeaders); - - // addHeaderNodes(root.get(), knownHeaders, allFiles); + buildDirectory); if (!data.cmakeNodesSource.empty() || !data.cmakeNodesBuild.empty() || !data.cmakeNodesOther.empty()) - addCMakeInputs(result.first.get(), + addCMakeInputs(result.get(), sourceDirectory, buildDirectory, std::move(data.cmakeNodesSource), @@ -644,8 +633,6 @@ std::pair, QSet> generateRootProject data.cmakeNodesBuild.clear(); // Remove all the nullptr in the vector... data.cmakeNodesOther.clear(); // Remove all the nullptr in the vector... - result.second = knownHeaders; - return result; } @@ -720,10 +707,9 @@ FileApiQtcData extractData(FileApiData &input, result.cmakeFiles = std::move(data.cmakeFiles); result.projectParts = generateRawProjectParts(data, sourceDirectory); - auto pair = generateRootProjectNode(data, sourceDirectory, buildDirectory); - ProjectTree::applyTreeManager(pair.first.get()); // QRC nodes - result.rootProjectNode = std::move(pair.first); - result.knownHeaders = std::move(pair.second); + auto rootProjectNode = generateRootProjectNode(data, sourceDirectory, buildDirectory); + ProjectTree::applyTreeManager(rootProjectNode.get()); // QRC nodes + result.rootProjectNode = std::move(rootProjectNode); setupLocationInfoForTargets(result.rootProjectNode.get(), result.buildTargets); diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.h b/src/plugins/cmakeprojectmanager/fileapidataextractor.h index f42cc27d410..f0ba89d0428 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.h +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.h @@ -67,7 +67,6 @@ public: QList buildTargets; ProjectExplorer::RawProjectParts projectParts; std::unique_ptr rootProjectNode; - QSet knownHeaders; QString ctestPath; bool isMultiConfig = false; bool usesAllCapsTargets = false; diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index 15f95637e2d..24c3c29fe47 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -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 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); diff --git a/src/plugins/cmakeprojectmanager/fileapireader.h b/src/plugins/cmakeprojectmanager/fileapireader.h index 384e711df73..a0fd38c491d 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.h +++ b/src/plugins/cmakeprojectmanager/fileapireader.h @@ -105,7 +105,6 @@ private: QList m_buildTargets; ProjectExplorer::RawProjectParts m_projectParts; std::unique_ptr m_rootProjectNode; - QSet m_knownHeaders; QString m_ctestPath; bool m_isMultiConfig = false; bool m_usesAllCapsTargets = false; diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp index f9a58dc3919..0f070095f24 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp @@ -175,39 +175,6 @@ CMakeTargetNode *createTargetNode(const QHash &c return tn; } -void addHeaderNodes(ProjectNode *root, - QSet &seenHeaders, - const QList &allFiles) -{ - QTC_ASSERT(root, return ); - - if (root->isEmpty()) - return; - - auto headerNode = std::make_unique(root->filePath()); - headerNode->setPriority(Node::DefaultPriority - 5); - headerNode->setDisplayName( - QCoreApplication::translate("CMakeProjectManager::Internal::ProjectTreeHelper", - "")); - headerNode->setIcon(DirectoryIcon(ProjectExplorer::Constants::FILEOVERLAY_H)); - - // Add scanned headers: - for (const FileNode *fn : allFiles) { - if (fn->fileType() != FileType::Header || !fn->filePath().isChildOf(root->filePath())) - continue; - const int count = seenHeaders.count(); - seenHeaders.insert(fn->filePath()); - if (seenHeaders.count() != count) { - std::unique_ptr node(fn->clone()); - node->setEnabled(false); - headerNode->addNestedNode(std::move(node)); - } - } - - if (!headerNode->isEmpty()) - root->addNode(std::move(headerNode)); -} - template static std::unique_ptr cloneFolderNode(FolderNode *node) { diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.h b/src/plugins/cmakeprojectmanager/projecttreehelper.h index e25d933141b..8b767a7fad1 100644 --- a/src/plugins/cmakeprojectmanager/projecttreehelper.h +++ b/src/plugins/cmakeprojectmanager/projecttreehelper.h @@ -64,10 +64,6 @@ CMakeTargetNode *createTargetNode( const Utils::FilePath &dir, const QString &displayName); -void addHeaderNodes(ProjectExplorer::ProjectNode *root, - QSet &seenHeaders, - const QList &allFiles); - void addFileSystemNodes(ProjectExplorer::ProjectNode *root, const std::shared_ptr &folderNode); } // namespace Internal