Meson: Rename some of the KitAspect related classes

... and split out the static interface.

Change-Id: Iaa92ab8e0b29e47736af6c2b5ed146369f2d7294
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2023-08-10 16:20:25 +02:00
parent e9266f53ec
commit bb06155f09
5 changed files with 59 additions and 56 deletions

View File

@@ -46,8 +46,8 @@ public:
private: private:
ToolsSettingsPage m_toolslSettingsPage; ToolsSettingsPage m_toolslSettingsPage;
ToolsSettingsAccessor m_toolsSettings; ToolsSettingsAccessor m_toolsSettings;
MesonToolKitAspect m_mesonKitAspect; MesonToolKitAspectFactory m_mesonKitAspectFactory;
NinjaToolKitAspect m_ninjaKitAspect; NinjaToolKitAspectFactory m_ninjaKitAspectFactory;
MesonBuildStepFactory m_buildStepFactory; MesonBuildStepFactory m_buildStepFactory;
MesonBuildConfigurationFactory m_buildConfigurationFactory; MesonBuildConfigurationFactory m_buildConfigurationFactory;
MesonRunConfigurationFactory m_runConfigurationFactory; MesonRunConfigurationFactory m_runConfigurationFactory;

View File

@@ -8,12 +8,11 @@
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
namespace MesonProjectManager { namespace MesonProjectManager::Internal {
namespace Internal {
static const char TOOL_ID[] = "MesonProjectManager.MesonKitInformation.Meson"; static const char TOOL_ID[] = "MesonProjectManager.MesonKitInformation.Meson";
MesonToolKitAspect::MesonToolKitAspect() MesonToolKitAspectFactory::MesonToolKitAspectFactory()
{ {
setObjectName(QLatin1String("MesonKitAspect")); setObjectName(QLatin1String("MesonKitAspect"));
setId(TOOL_ID); setId(TOOL_ID);
@@ -23,41 +22,41 @@ MesonToolKitAspect::MesonToolKitAspect()
setPriority(9000); setPriority(9000);
} }
ProjectExplorer::Tasks MesonToolKitAspect::validate(const ProjectExplorer::Kit *k) const ProjectExplorer::Tasks MesonToolKitAspectFactory::validate(const ProjectExplorer::Kit *k) const
{ {
ProjectExplorer::Tasks tasks; ProjectExplorer::Tasks tasks;
const auto tool = mesonTool(k); const auto tool = MesonToolKitAspect::mesonTool(k);
if (tool && !tool->isValid()) if (tool && !tool->isValid())
tasks << ProjectExplorer::BuildSystemTask{ProjectExplorer::Task::Warning, tasks << ProjectExplorer::BuildSystemTask{ProjectExplorer::Task::Warning,
Tr::tr("Cannot validate this meson executable.")}; Tr::tr("Cannot validate this meson executable.")};
return tasks; 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) { if (!tool) {
const auto autoDetected = MesonTools::mesonWrapper(); const auto autoDetected = MesonTools::mesonWrapper();
if (autoDetected) 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); setup(k);
} }
ProjectExplorer::KitAspectFactory::ItemList MesonToolKitAspect::toUserOutput( ProjectExplorer::KitAspectFactory::ItemList MesonToolKitAspectFactory::toUserOutput(
const ProjectExplorer::Kit *k) const const ProjectExplorer::Kit *k) const
{ {
const auto tool = mesonTool(k); const auto tool = MesonToolKitAspect::mesonTool(k);
if (tool) if (tool)
return {{Tr::tr("Meson"), tool->name()}}; return {{Tr::tr("Meson"), tool->name()}};
return {{Tr::tr("Meson"), Tr::tr("Unconfigured")}}; 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); QTC_ASSERT(k, return nullptr);
return new ToolKitAspectWidget{k, this, ToolKitAspectWidget::ToolType::Meson}; return new ToolKitAspectWidget{k, this, ToolKitAspectWidget::ToolType::Meson};
@@ -74,5 +73,5 @@ Utils::Id MesonToolKitAspect::mesonToolId(const ProjectExplorer::Kit *kit)
QTC_ASSERT(kit, return {}); QTC_ASSERT(kit, return {});
return Utils::Id::fromSetting(kit->value(TOOL_ID)); return Utils::Id::fromSetting(kit->value(TOOL_ID));
} }
} // namespace Internal
} // namespace MesonProjectManager } // MesonProjectManager::Internal

View File

@@ -8,20 +8,11 @@
#include <projectexplorer/kit.h> #include <projectexplorer/kit.h>
#include <projectexplorer/kitmanager.h> #include <projectexplorer/kitmanager.h>
namespace MesonProjectManager { namespace MesonProjectManager::Internal {
namespace Internal {
class MesonToolKitAspect final : public ProjectExplorer::KitAspectFactory class MesonToolKitAspect final
{ {
public: 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 void setMesonTool(ProjectExplorer::Kit *kit, Utils::Id id);
static Utils::Id mesonToolId(const ProjectExplorer::Kit *kit); static Utils::Id mesonToolId(const ProjectExplorer::Kit *kit);
@@ -37,5 +28,17 @@ public:
} }
}; };
} // namespace Internal class MesonToolKitAspectFactory final : public ProjectExplorer::KitAspectFactory
} // namespace MesonProjectManager {
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

View File

@@ -8,12 +8,11 @@
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
namespace MesonProjectManager { namespace MesonProjectManager::Internal {
namespace Internal {
static const char TOOL_ID[] = "MesonProjectManager.MesonKitInformation.Ninja"; static const char TOOL_ID[] = "MesonProjectManager.MesonKitInformation.Ninja";
NinjaToolKitAspect::NinjaToolKitAspect() NinjaToolKitAspectFactory::NinjaToolKitAspectFactory()
{ {
setObjectName(QLatin1String("NinjaKitAspect")); setObjectName(QLatin1String("NinjaKitAspect"));
setId(TOOL_ID); setId(TOOL_ID);
@@ -23,41 +22,41 @@ NinjaToolKitAspect::NinjaToolKitAspect()
setPriority(9000); setPriority(9000);
} }
ProjectExplorer::Tasks NinjaToolKitAspect::validate(const ProjectExplorer::Kit *k) const ProjectExplorer::Tasks NinjaToolKitAspectFactory::validate(const ProjectExplorer::Kit *k) const
{ {
ProjectExplorer::Tasks tasks; ProjectExplorer::Tasks tasks;
const auto tool = ninjaTool(k); const auto tool = NinjaToolKitAspect::ninjaTool(k);
if (tool && !tool->isValid()) if (tool && !tool->isValid())
tasks << ProjectExplorer::BuildSystemTask{ProjectExplorer::Task::Warning, tasks << ProjectExplorer::BuildSystemTask{ProjectExplorer::Task::Warning,
Tr::tr("Cannot validate this Ninja executable.")}; Tr::tr("Cannot validate this Ninja executable.")};
return tasks; 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) { if (!tool) {
const auto autoDetected = MesonTools::ninjaWrapper(); const auto autoDetected = MesonTools::ninjaWrapper();
if (autoDetected) 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); setup(k);
} }
ProjectExplorer::KitAspectFactory::ItemList NinjaToolKitAspect::toUserOutput( ProjectExplorer::KitAspectFactory::ItemList NinjaToolKitAspectFactory::toUserOutput(
const ProjectExplorer::Kit *k) const const ProjectExplorer::Kit *k) const
{ {
const auto tool = ninjaTool(k); const auto tool = NinjaToolKitAspect::ninjaTool(k);
if (tool) if (tool)
return {{Tr::tr("Ninja"), tool->name()}}; return {{Tr::tr("Ninja"), tool->name()}};
return {{Tr::tr("Ninja"), Tr::tr("Unconfigured")}}; 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); QTC_ASSERT(k, return nullptr);
return new ToolKitAspectWidget{k, this, ToolKitAspectWidget::ToolType::Ninja}; return new ToolKitAspectWidget{k, this, ToolKitAspectWidget::ToolType::Ninja};
@@ -74,5 +73,5 @@ Utils::Id NinjaToolKitAspect::ninjaToolId(const ProjectExplorer::Kit *kit)
QTC_ASSERT(kit, return {}); QTC_ASSERT(kit, return {});
return Utils::Id::fromSetting(kit->value(TOOL_ID)); return Utils::Id::fromSetting(kit->value(TOOL_ID));
} }
} // namespace Internal
} // namespace MesonProjectManager } // MesonProjectManager::Internal

View File

@@ -8,20 +8,11 @@
#include <projectexplorer/kit.h> #include <projectexplorer/kit.h>
#include <projectexplorer/kitmanager.h> #include <projectexplorer/kitmanager.h>
namespace MesonProjectManager { namespace MesonProjectManager::Internal {
namespace Internal {
class NinjaToolKitAspect final : public ProjectExplorer::KitAspectFactory class NinjaToolKitAspect final
{ {
public: 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 void setNinjaTool(ProjectExplorer::Kit *kit, Utils::Id id);
static Utils::Id ninjaToolId(const ProjectExplorer::Kit *kit); static Utils::Id ninjaToolId(const ProjectExplorer::Kit *kit);
@@ -36,5 +27,16 @@ public:
} }
}; };
} // namespace Internal class NinjaToolKitAspectFactory final : public ProjectExplorer::KitAspectFactory
} // namespace MesonProjectManager {
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