Python: Use setup function for build related factories

Change-Id: I3b1faad8a5f3ead1332941d31509c3efd3806f78
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2024-02-01 14:14:38 +01:00
parent e784b1e58b
commit 2a29acdbaf
3 changed files with 61 additions and 49 deletions

View File

@@ -44,14 +44,6 @@ using namespace Utils;
namespace Python::Internal { namespace Python::Internal {
PySideBuildStepFactory::PySideBuildStepFactory()
{
registerStep<PySideBuildStep>(PySideBuildStep::id());
setSupportedProjectType(PythonProjectId);
setDisplayName(Tr::tr("Run PySide6 project tool"));
setFlags(BuildStep::UniqueStep);
}
PySideBuildStep::PySideBuildStep(BuildStepList *bsl, Id id) PySideBuildStep::PySideBuildStep(BuildStepList *bsl, Id id)
: AbstractProcessStep(bsl, id) : AbstractProcessStep(bsl, id)
{ {
@@ -245,6 +237,25 @@ private:
DetailsWidget *m_configureDetailsWidget; DetailsWidget *m_configureDetailsWidget;
}; };
class PySideBuildStepFactory final : public BuildStepFactory
{
public:
PySideBuildStepFactory()
{
registerStep<PySideBuildStep>(PySideBuildStep::id());
setSupportedProjectType(PythonProjectId);
setDisplayName(Tr::tr("Run PySide6 project tool"));
setFlags(BuildStep::UniqueStep);
}
};
void setupPySideBuildStep()
{
static PySideBuildStepFactory thePySideBuildStepFactory;
}
// PythonBuildConfiguration
PythonBuildConfiguration::PythonBuildConfiguration(Target *target, const Id &id) PythonBuildConfiguration::PythonBuildConfiguration(Target *target, const Id &id)
: BuildConfiguration(target, id) : BuildConfiguration(target, id)
, m_buildSystem(std::make_unique<PythonBuildSystem>(this)) , m_buildSystem(std::make_unique<PythonBuildSystem>(this))
@@ -378,7 +389,10 @@ std::optional<FilePath> PythonBuildConfiguration::venv() const
return m_venv; return m_venv;
} }
PythonBuildConfigurationFactory::PythonBuildConfigurationFactory() class PythonBuildConfigurationFactory final : public BuildConfigurationFactory
{
public:
PythonBuildConfigurationFactory()
{ {
registerBuildConfiguration<PythonBuildConfiguration>("Python.PySideBuildConfiguration"); registerBuildConfiguration<PythonBuildConfiguration>("Python.PySideBuildConfiguration");
setSupportedProjectType(PythonProjectId); setSupportedProjectType(PythonProjectId);
@@ -411,5 +425,11 @@ PythonBuildConfigurationFactory::PythonBuildConfigurationFactory()
return QList<BuildInfo>{}; return QList<BuildInfo>{};
}); });
} }
};
void setupPythonBuildConfiguration()
{
static PythonBuildConfigurationFactory thePythonBuildConfigurationFactory;
}
} // Python::Internal } // Python::Internal

View File

@@ -46,12 +46,6 @@ private:
QList<PySideUicExtraCompiler *> m_extraCompilers; QList<PySideUicExtraCompiler *> m_extraCompilers;
}; };
class PySideBuildStepFactory : public ProjectExplorer::BuildStepFactory
{
public:
PySideBuildStepFactory();
};
class PythonBuildConfiguration : public ProjectExplorer::BuildConfiguration class PythonBuildConfiguration : public ProjectExplorer::BuildConfiguration
{ {
Q_OBJECT Q_OBJECT
@@ -77,10 +71,7 @@ private:
std::unique_ptr<PythonBuildSystem> m_buildSystem; std::unique_ptr<PythonBuildSystem> m_buildSystem;
}; };
class PythonBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory void setupPySideBuildStep();
{ void setupPythonBuildConfiguration();
public:
PythonBuildConfigurationFactory();
};
} // namespace Python::Internal } // namespace Python::Internal

View File

@@ -44,8 +44,6 @@ class PythonPluginPrivate
{ {
public: public:
PythonRunConfigurationFactory runConfigFactory; PythonRunConfigurationFactory runConfigFactory;
PySideBuildStepFactory buildStepFactory;
PythonBuildConfigurationFactory buildConfigFactory;
SimpleTargetRunnerFactory runWorkerFactory{{runConfigFactory.runConfigurationId()}}; SimpleTargetRunnerFactory runWorkerFactory{{runConfigFactory.runConfigurationId()}};
SimpleDebugRunnerFactory debugRunWorkerFactory{{runConfigFactory.runConfigurationId()}, {ProjectExplorer::Constants::DAP_PY_DEBUG_RUN_MODE}}; SimpleDebugRunnerFactory debugRunWorkerFactory{{runConfigFactory.runConfigurationId()}, {ProjectExplorer::Constants::DAP_PY_DEBUG_RUN_MODE}};
PythonSettings settings; PythonSettings settings;
@@ -76,6 +74,9 @@ private:
setupPythonEditorFactory(this); setupPythonEditorFactory(this);
setupPySideBuildStep();
setupPythonBuildConfiguration();
setupPythonOutputParser(); setupPythonOutputParser();
KitManager::setIrrelevantAspects(KitManager::irrelevantAspects() KitManager::setIrrelevantAspects(KitManager::irrelevantAspects()