From d880f1f7718213a548c42cd0db2bb6137d2bcca1 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 8 Aug 2019 17:28:11 +0200 Subject: [PATCH] ProjectExplorer: De-virtualize knowsAllBuildExectuables method on Project Just use a setter instead. Change-Id: Id5dff64e9a7fcdf64a245b71432318299a49d9f7 Reviewed-by: hjk --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 6 +----- src/plugins/cmakeprojectmanager/cmakeproject.h | 2 -- src/plugins/projectexplorer/project.cpp | 8 +++++++- src/plugins/projectexplorer/project.h | 4 +++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 7a790661056..4cd3eac7a35 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -111,6 +111,7 @@ CMakeProject::CMakeProject(const FilePath &fileName) setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID)); setDisplayName(projectDirectory().fileName()); setCanBuildProducts(); + setKnowsAllBuildExecutables(false); // Timer: m_delayedParsingTimer.setSingleShot(true); @@ -294,11 +295,6 @@ void CMakeProject::updateQmlJSCodeModel(CMakeBuildConfiguration *bc) modelManager->updateProjectInfo(projectInfo, this); } -bool CMakeProject::knowsAllBuildExecutables() const -{ - return false; -} - Tasks CMakeProject::projectIssues(const Kit *k) const { Tasks result = Project::projectIssues(k); diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index b7ea52cd96f..dd84b2724a3 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -65,8 +65,6 @@ public: QStringList buildTargetTitles() const; - bool knowsAllBuildExecutables() const final; - ProjectExplorer::Tasks projectIssues(const ProjectExplorer::Kit *k) const final; void runCMake(); diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 7f073cee182..b18ba3f6bce 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -166,6 +166,7 @@ public: bool m_hasParsingData = false; bool m_needsInitialExpansion = false; bool m_canBuildProducts = false; + bool m_knowsAllBuildExecutables = true; std::unique_ptr m_document; std::unique_ptr m_rootProjectNode; std::unique_ptr m_containerNode; @@ -812,6 +813,11 @@ void Project::projectLoaded() { } +void Project::setKnowsAllBuildExecutables(bool value) +{ + d->m_knowsAllBuildExecutables = value; +} + Task Project::createProjectTask(Task::TaskType type, const QString &description) { return Task(type, description, Utils::FilePath(), -1, Core::Id()); @@ -864,7 +870,7 @@ void Project::configureAsExampleProject() bool Project::knowsAllBuildExecutables() const { - return true; + return d->m_knowsAllBuildExecutables; } MakeInstallCommand Project::makeInstallCommand(const Target *target, const QString &installRoot) diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index 4c962b3a16a..1eeece26469 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -167,7 +167,7 @@ public: // The build system is able to report all executables that can be built, independent // of configuration. - virtual bool knowsAllBuildExecutables() const; + bool knowsAllBuildExecutables() const; virtual DeploymentKnowledge deploymentKnowledge() const { return DeploymentKnowledge::Bad; } virtual bool hasMakeInstallEquivalent() const { return false; } @@ -262,6 +262,8 @@ protected: void setProjectLanguage(Core::Id id, bool enabled); virtual void projectLoaded(); // Called when the project is fully loaded. + void setKnowsAllBuildExecutables(bool value); + static ProjectExplorer::Task createProjectTask(ProjectExplorer::Task::TaskType type, const QString &description);