From bb06155f090b3e47e0e92ea26b9ef54715c7d086 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 10 Aug 2023 16:20:25 +0200 Subject: [PATCH] Meson: Rename some of the KitAspect related classes ... and split out the static interface. Change-Id: Iaa92ab8e0b29e47736af6c2b5ed146369f2d7294 Reviewed-by: Christian Kandeler --- .../mesonprojectplugin.cpp | 4 +-- .../mesontoolkitaspect.cpp | 27 +++++++++-------- .../mesonprojectmanager/mesontoolkitaspect.h | 29 ++++++++++--------- .../ninjatoolkitaspect.cpp | 27 +++++++++-------- .../mesonprojectmanager/ninjatoolkitaspect.h | 28 +++++++++--------- 5 files changed, 59 insertions(+), 56 deletions(-) diff --git a/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp b/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp index 1b71ff5e3f2..e7518d74013 100644 --- a/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp +++ b/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp @@ -46,8 +46,8 @@ public: private: ToolsSettingsPage m_toolslSettingsPage; ToolsSettingsAccessor m_toolsSettings; - MesonToolKitAspect m_mesonKitAspect; - NinjaToolKitAspect m_ninjaKitAspect; + MesonToolKitAspectFactory m_mesonKitAspectFactory; + NinjaToolKitAspectFactory m_ninjaKitAspectFactory; MesonBuildStepFactory m_buildStepFactory; MesonBuildConfigurationFactory m_buildConfigurationFactory; MesonRunConfigurationFactory m_runConfigurationFactory; diff --git a/src/plugins/mesonprojectmanager/mesontoolkitaspect.cpp b/src/plugins/mesonprojectmanager/mesontoolkitaspect.cpp index 024606d933a..b5b494064a0 100644 --- a/src/plugins/mesonprojectmanager/mesontoolkitaspect.cpp +++ b/src/plugins/mesonprojectmanager/mesontoolkitaspect.cpp @@ -8,12 +8,11 @@ #include -namespace MesonProjectManager { -namespace Internal { +namespace MesonProjectManager::Internal { static const char TOOL_ID[] = "MesonProjectManager.MesonKitInformation.Meson"; -MesonToolKitAspect::MesonToolKitAspect() +MesonToolKitAspectFactory::MesonToolKitAspectFactory() { setObjectName(QLatin1String("MesonKitAspect")); setId(TOOL_ID); @@ -23,41 +22,41 @@ MesonToolKitAspect::MesonToolKitAspect() setPriority(9000); } -ProjectExplorer::Tasks MesonToolKitAspect::validate(const ProjectExplorer::Kit *k) const +ProjectExplorer::Tasks MesonToolKitAspectFactory::validate(const ProjectExplorer::Kit *k) const { ProjectExplorer::Tasks tasks; - const auto tool = mesonTool(k); + const auto tool = MesonToolKitAspect::mesonTool(k); if (tool && !tool->isValid()) tasks << ProjectExplorer::BuildSystemTask{ProjectExplorer::Task::Warning, Tr::tr("Cannot validate this meson executable.")}; return tasks; } -void MesonToolKitAspect::setup(ProjectExplorer::Kit *k) +void MesonToolKitAspectFactory::setup(ProjectExplorer::Kit *k) { - const auto tool = mesonTool(k); + const auto tool = MesonToolKitAspect::mesonTool(k); if (!tool) { const auto autoDetected = MesonTools::mesonWrapper(); if (autoDetected) - setMesonTool(k, autoDetected->id()); + MesonToolKitAspect::setMesonTool(k, autoDetected->id()); } } -void MesonToolKitAspect::fix(ProjectExplorer::Kit *k) +void MesonToolKitAspectFactory::fix(ProjectExplorer::Kit *k) { setup(k); } -ProjectExplorer::KitAspectFactory::ItemList MesonToolKitAspect::toUserOutput( +ProjectExplorer::KitAspectFactory::ItemList MesonToolKitAspectFactory::toUserOutput( const ProjectExplorer::Kit *k) const { - const auto tool = mesonTool(k); + const auto tool = MesonToolKitAspect::mesonTool(k); if (tool) return {{Tr::tr("Meson"), tool->name()}}; return {{Tr::tr("Meson"), Tr::tr("Unconfigured")}}; } -ProjectExplorer::KitAspect *MesonToolKitAspect::createKitAspect(ProjectExplorer::Kit *k) const +ProjectExplorer::KitAspect *MesonToolKitAspectFactory::createKitAspect(ProjectExplorer::Kit *k) const { QTC_ASSERT(k, return nullptr); return new ToolKitAspectWidget{k, this, ToolKitAspectWidget::ToolType::Meson}; @@ -74,5 +73,5 @@ Utils::Id MesonToolKitAspect::mesonToolId(const ProjectExplorer::Kit *kit) QTC_ASSERT(kit, return {}); return Utils::Id::fromSetting(kit->value(TOOL_ID)); } -} // namespace Internal -} // namespace MesonProjectManager + +} // MesonProjectManager::Internal diff --git a/src/plugins/mesonprojectmanager/mesontoolkitaspect.h b/src/plugins/mesonprojectmanager/mesontoolkitaspect.h index a53f49a7678..b6764c2ea91 100644 --- a/src/plugins/mesonprojectmanager/mesontoolkitaspect.h +++ b/src/plugins/mesonprojectmanager/mesontoolkitaspect.h @@ -8,20 +8,11 @@ #include #include -namespace MesonProjectManager { -namespace Internal { +namespace MesonProjectManager::Internal { -class MesonToolKitAspect final : public ProjectExplorer::KitAspectFactory +class MesonToolKitAspect final { public: - MesonToolKitAspect(); - - ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const final; - void setup(ProjectExplorer::Kit *k) final; - void fix(ProjectExplorer::Kit *k) final; - ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; - ProjectExplorer::KitAspect *createKitAspect(ProjectExplorer::Kit *) const final; - static void setMesonTool(ProjectExplorer::Kit *kit, Utils::Id id); static Utils::Id mesonToolId(const ProjectExplorer::Kit *kit); @@ -37,5 +28,17 @@ public: } }; -} // namespace Internal -} // namespace MesonProjectManager +class MesonToolKitAspectFactory final : public ProjectExplorer::KitAspectFactory +{ +public: + MesonToolKitAspectFactory(); + + ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const final; + void setup(ProjectExplorer::Kit *k) final; + void fix(ProjectExplorer::Kit *k) final; + ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; + ProjectExplorer::KitAspect *createKitAspect(ProjectExplorer::Kit *) const final; + +}; + +} // MesonProjectManager::Internal diff --git a/src/plugins/mesonprojectmanager/ninjatoolkitaspect.cpp b/src/plugins/mesonprojectmanager/ninjatoolkitaspect.cpp index 61d117f61ac..1e093588252 100644 --- a/src/plugins/mesonprojectmanager/ninjatoolkitaspect.cpp +++ b/src/plugins/mesonprojectmanager/ninjatoolkitaspect.cpp @@ -8,12 +8,11 @@ #include -namespace MesonProjectManager { -namespace Internal { +namespace MesonProjectManager::Internal { static const char TOOL_ID[] = "MesonProjectManager.MesonKitInformation.Ninja"; -NinjaToolKitAspect::NinjaToolKitAspect() +NinjaToolKitAspectFactory::NinjaToolKitAspectFactory() { setObjectName(QLatin1String("NinjaKitAspect")); setId(TOOL_ID); @@ -23,41 +22,41 @@ NinjaToolKitAspect::NinjaToolKitAspect() setPriority(9000); } -ProjectExplorer::Tasks NinjaToolKitAspect::validate(const ProjectExplorer::Kit *k) const +ProjectExplorer::Tasks NinjaToolKitAspectFactory::validate(const ProjectExplorer::Kit *k) const { ProjectExplorer::Tasks tasks; - const auto tool = ninjaTool(k); + const auto tool = NinjaToolKitAspect::ninjaTool(k); if (tool && !tool->isValid()) tasks << ProjectExplorer::BuildSystemTask{ProjectExplorer::Task::Warning, Tr::tr("Cannot validate this Ninja executable.")}; return tasks; } -void NinjaToolKitAspect::setup(ProjectExplorer::Kit *k) +void NinjaToolKitAspectFactory::setup(ProjectExplorer::Kit *k) { - const auto tool = ninjaTool(k); + const auto tool = NinjaToolKitAspect::ninjaTool(k); if (!tool) { const auto autoDetected = MesonTools::ninjaWrapper(); if (autoDetected) - setNinjaTool(k, autoDetected->id()); + NinjaToolKitAspect::setNinjaTool(k, autoDetected->id()); } } -void NinjaToolKitAspect::fix(ProjectExplorer::Kit *k) +void NinjaToolKitAspectFactory::fix(ProjectExplorer::Kit *k) { setup(k); } -ProjectExplorer::KitAspectFactory::ItemList NinjaToolKitAspect::toUserOutput( +ProjectExplorer::KitAspectFactory::ItemList NinjaToolKitAspectFactory::toUserOutput( const ProjectExplorer::Kit *k) const { - const auto tool = ninjaTool(k); + const auto tool = NinjaToolKitAspect::ninjaTool(k); if (tool) return {{Tr::tr("Ninja"), tool->name()}}; return {{Tr::tr("Ninja"), Tr::tr("Unconfigured")}}; } -ProjectExplorer::KitAspect *NinjaToolKitAspect::createKitAspect(ProjectExplorer::Kit *k) const +ProjectExplorer::KitAspect *NinjaToolKitAspectFactory::createKitAspect(ProjectExplorer::Kit *k) const { QTC_ASSERT(k, return nullptr); return new ToolKitAspectWidget{k, this, ToolKitAspectWidget::ToolType::Ninja}; @@ -74,5 +73,5 @@ Utils::Id NinjaToolKitAspect::ninjaToolId(const ProjectExplorer::Kit *kit) QTC_ASSERT(kit, return {}); return Utils::Id::fromSetting(kit->value(TOOL_ID)); } -} // namespace Internal -} // namespace MesonProjectManager + +} // MesonProjectManager::Internal diff --git a/src/plugins/mesonprojectmanager/ninjatoolkitaspect.h b/src/plugins/mesonprojectmanager/ninjatoolkitaspect.h index 19cfa0760a0..ce080d1e676 100644 --- a/src/plugins/mesonprojectmanager/ninjatoolkitaspect.h +++ b/src/plugins/mesonprojectmanager/ninjatoolkitaspect.h @@ -8,20 +8,11 @@ #include #include -namespace MesonProjectManager { -namespace Internal { +namespace MesonProjectManager::Internal { -class NinjaToolKitAspect final : public ProjectExplorer::KitAspectFactory +class NinjaToolKitAspect final { public: - NinjaToolKitAspect(); - - ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const final; - void setup(ProjectExplorer::Kit *k) final; - void fix(ProjectExplorer::Kit *k) final; - ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; - ProjectExplorer::KitAspect *createKitAspect(ProjectExplorer::Kit *) const final; - static void setNinjaTool(ProjectExplorer::Kit *kit, Utils::Id id); static Utils::Id ninjaToolId(const ProjectExplorer::Kit *kit); @@ -36,5 +27,16 @@ public: } }; -} // namespace Internal -} // namespace MesonProjectManager +class NinjaToolKitAspectFactory final : public ProjectExplorer::KitAspectFactory +{ +public: + NinjaToolKitAspectFactory(); + + ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const final; + void setup(ProjectExplorer::Kit *k) final; + void fix(ProjectExplorer::Kit *k) final; + ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; + ProjectExplorer::KitAspect *createKitAspect(ProjectExplorer::Kit *) const final; +}; + +} // MesonProjectManager::Internal