aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2024-02-07 09:05:23 +0100
committerhjk <hjk@qt.io>2024-02-07 10:33:03 +0000
commitfe251201fbf792fc771dbe38c32ae4207caf2351 (patch)
treeec938d2d30f17eb71ce73db339a05c6b38a0c47a /src/plugins/projectexplorer
parent7daee3d68188ab819356b5af7020d40ec1430730 (diff)
ProjectExplorer: Hide a few factories behind a setup function
Change-Id: I2b688cee072d9983fbceb536063454a97dea3e60 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer')
-rw-r--r--src/plugins/projectexplorer/desktoprunconfiguration.cpp66
-rw-r--r--src/plugins/projectexplorer/desktoprunconfiguration.h21
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp20
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h8
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp16
5 files changed, 72 insertions, 59 deletions
diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.cpp b/src/plugins/projectexplorer/desktoprunconfiguration.cpp
index 9c5b4df6e8..a8d3284e9b 100644
--- a/src/plugins/projectexplorer/desktoprunconfiguration.cpp
+++ b/src/plugins/projectexplorer/desktoprunconfiguration.cpp
@@ -7,6 +7,7 @@
#include "projectexplorerconstants.h"
#include "projectexplorertr.h"
#include "runconfigurationaspects.h"
+#include "runcontrol.h"
#include "target.h"
#include <cmakeprojectmanager/cmakeprojectconstants.h>
@@ -15,6 +16,7 @@
#include <qmakeprojectmanager/qmakeprojectmanagerconstants.h>
using namespace Utils;
+using namespace ProjectExplorer::Constants;
namespace ProjectExplorer::Internal {
@@ -142,7 +144,9 @@ FilePath DesktopRunConfiguration::executableToRun(const BuildTargetInfo &targetI
return appInLocalInstallDir.exists() ? appInLocalInstallDir : appInBuildDir;
}
-// Factory
+// Factories
+
+// FIXME: These three would not be needed if registerRunConfiguration took parameter pack args
class DesktopQmakeRunConfiguration final : public DesktopRunConfiguration
{
@@ -168,28 +172,56 @@ public:
{}
};
-CMakeRunConfigurationFactory::CMakeRunConfigurationFactory()
+class CMakeRunConfigurationFactory final : public RunConfigurationFactory
{
- registerRunConfiguration<CMakeRunConfiguration>(ProjectExplorer::Constants::CMAKE_RUNCONFIG_ID);
- addSupportedProjectType(CMakeProjectManager::Constants::CMAKE_PROJECT_ID);
- addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
- addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE);
-}
+public:
+ CMakeRunConfigurationFactory()
+ {
+ registerRunConfiguration<CMakeRunConfiguration>(Constants::CMAKE_RUNCONFIG_ID);
+ addSupportedProjectType(CMakeProjectManager::Constants::CMAKE_PROJECT_ID);
+ addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
+ addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE);
+ }
+};
+
+class QbsRunConfigurationFactory final : public RunConfigurationFactory
+{
+public:
+ QbsRunConfigurationFactory()
+ {
+ registerRunConfiguration<QbsRunConfiguration>(Constants::QBS_RUNCONFIG_ID);
+ addSupportedProjectType(QbsProjectManager::Constants::PROJECT_ID);
+ addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
+ addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE);
+ }
+};
+
+class DesktopQmakeRunConfigurationFactory final : public RunConfigurationFactory
+{
+public:
+ DesktopQmakeRunConfigurationFactory()
+ {
+ registerRunConfiguration<DesktopQmakeRunConfiguration>(Constants::QMAKE_RUNCONFIG_ID);
+ addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID);
+ addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
+ addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE);
+ }
+};
-QbsRunConfigurationFactory::QbsRunConfigurationFactory()
+void setupDesktopRunConfigurations()
{
- registerRunConfiguration<QbsRunConfiguration>(ProjectExplorer::Constants::QBS_RUNCONFIG_ID);
- addSupportedProjectType(QbsProjectManager::Constants::PROJECT_ID);
- addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
- addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE);
+ static DesktopQmakeRunConfigurationFactory theQmakeRunConfigFactory;
+ static QbsRunConfigurationFactory theQbsRunConfigFactory;
+ static CMakeRunConfigurationFactory theCmakeRunConfigFactory;
}
-DesktopQmakeRunConfigurationFactory::DesktopQmakeRunConfigurationFactory()
+void setupDesktopRunWorker()
{
- registerRunConfiguration<DesktopQmakeRunConfiguration>(ProjectExplorer::Constants::QMAKE_RUNCONFIG_ID);
- addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID);
- addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
- addSupportedTargetDeviceType(Docker::Constants::DOCKER_DEVICE_TYPE);
+ static SimpleTargetRunnerFactory theDesktopRunWorkerFactory({
+ Constants::CMAKE_RUNCONFIG_ID,
+ Constants::QBS_RUNCONFIG_ID,
+ Constants::QMAKE_RUNCONFIG_ID
+ });
}
} // ProjectExplorer::Internal
diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.h b/src/plugins/projectexplorer/desktoprunconfiguration.h
index 6a2203cace..f0163ccc6c 100644
--- a/src/plugins/projectexplorer/desktoprunconfiguration.h
+++ b/src/plugins/projectexplorer/desktoprunconfiguration.h
@@ -3,26 +3,9 @@
#pragma once
-#include "runconfiguration.h"
-
namespace ProjectExplorer::Internal {
-class DesktopQmakeRunConfigurationFactory final : public RunConfigurationFactory
-{
-public:
- DesktopQmakeRunConfigurationFactory();
-};
-
-class QbsRunConfigurationFactory final : public RunConfigurationFactory
-{
-public:
- QbsRunConfigurationFactory();
-};
-
-class CMakeRunConfigurationFactory final : public RunConfigurationFactory
-{
-public:
- CMakeRunConfigurationFactory();
-};
+void setupDesktopRunConfigurations();
+void setupDesktopRunWorker();
} // ProjectExplorer::Internal
diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp
index 9fb1e7fe8b..503347dd7f 100644
--- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp
@@ -3,6 +3,7 @@
#include "devicecheckbuildstep.h"
+#include "../buildstep.h"
#include "../kitaspects.h"
#include "../projectexplorerconstants.h"
#include "../projectexplorertr.h"
@@ -16,7 +17,7 @@
namespace ProjectExplorer {
-class DeviceCheckBuildStep : public BuildStep
+class DeviceCheckBuildStep final : public BuildStep
{
public:
DeviceCheckBuildStep(BuildStepList *bsl, Utils::Id id)
@@ -25,7 +26,7 @@ public:
setWidgetExpandedByDefault(false);
}
- bool init() override
+ bool init() final
{
IDevice::ConstPtr device = DeviceKitAspect::device(kit());
if (device)
@@ -65,10 +66,19 @@ private:
// Factory
-DeviceCheckBuildStepFactory::DeviceCheckBuildStepFactory()
+class DeviceCheckBuildStepFactory final : public BuildStepFactory
{
- registerStep<DeviceCheckBuildStep>(Constants::DEVICE_CHECK_STEP);
- setDisplayName(Tr::tr("Check for a configured device"));
+public:
+ DeviceCheckBuildStepFactory()
+ {
+ registerStep<DeviceCheckBuildStep>(Constants::DEVICE_CHECK_STEP);
+ setDisplayName(Tr::tr("Check for a configured device"));
+ }
+};
+
+void setupDeviceCheckBuildStep()
+{
+ static DeviceCheckBuildStepFactory theDeviceCheckBuildStepFactory;
}
} // ProjectExplorer
diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h
index d93227e264..c3f8470046 100644
--- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h
+++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h
@@ -3,14 +3,8 @@
#pragma once
-#include "../buildstep.h"
-
namespace ProjectExplorer {
-class DeviceCheckBuildStepFactory : public BuildStepFactory
-{
-public:
- DeviceCheckBuildStepFactory();
-};
+void setupDeviceCheckBuildStep();
} // ProjectExplorer
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index c2aed7faaa..e8aa205abd 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -710,17 +710,6 @@ public:
IDocumentFactory m_documentFactory;
IDocumentFactory m_taskFileFactory;
StopMonitoringHandler closeTaskFile;
-
- DesktopQmakeRunConfigurationFactory qmakeRunConfigFactory;
- QbsRunConfigurationFactory qbsRunConfigFactory;
- CMakeRunConfigurationFactory cmakeRunConfigFactory;
- SimpleTargetRunnerFactory desktopRunWorkerFactory{{
- qmakeRunConfigFactory.runConfigurationId(),
- qbsRunConfigFactory.runConfigurationId(),
- cmakeRunConfigFactory.runConfigurationId()
- }};
-
- DeviceCheckBuildStepFactory deviceCheckBuildStepFactory;
};
static ProjectExplorerPlugin *m_instance = nullptr;
@@ -823,6 +812,11 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
dd = new ProjectExplorerPluginPrivate;
+ setupDesktopRunConfigurations();
+ setupDesktopRunWorker();
+
+ setupDeviceCheckBuildStep();
+
setupCurrentProjectFind();
setupSanitizerOutputParser();