diff --git a/src/plugins/ios/iosbuildconfiguration.cpp b/src/plugins/ios/iosbuildconfiguration.cpp index 92c41179658..ba911f773e7 100644 --- a/src/plugins/ios/iosbuildconfiguration.cpp +++ b/src/plugins/ios/iosbuildconfiguration.cpp @@ -11,9 +11,11 @@ #include #include +#include #include #include +#include #include #include @@ -31,8 +33,7 @@ using namespace CMakeProjectManager; using namespace ProjectExplorer; using namespace Utils; -namespace Ios { -namespace Internal { +namespace Ios::Internal { static Q_LOGGING_CATEGORY(iosSettingsLog, "qtc.ios.common", QtWarningMsg) @@ -43,7 +44,7 @@ const char autoManagedSigningKey[] = "Ios.AutoManagedSigning"; const int IdentifierRole = Qt::UserRole+1; -class IosSigningSettingsWidget : public NamedWidget +class IosSigningSettingsWidget final : public NamedWidget { public: explicit IosSigningSettingsWidget(BuildConfiguration *buildConfiguration, @@ -369,14 +370,14 @@ void IosSigningSettingsWidget::updateWarningText() // IosQmakeBuildConfiguration -class IosQmakeBuildConfiguration : public QmakeProjectManager::QmakeBuildConfiguration +class IosQmakeBuildConfiguration final : public QmakeBuildConfiguration { public: IosQmakeBuildConfiguration(Target *target, Id id); private: - QList createSubConfigWidgets() override; - void fromMap(const Store &map) override; + QList createSubConfigWidgets() final; + void fromMap(const Store &map) final; void updateQmakeCommand(); @@ -471,23 +472,28 @@ void IosQmakeBuildConfiguration::updateQmakeCommand() } } -IosQmakeBuildConfigurationFactory::IosQmakeBuildConfigurationFactory() +class IosQmakeBuildConfigurationFactory final : public QmakeBuildConfigurationFactory { - registerBuildConfiguration( - QmakeProjectManager::Constants::QMAKE_BC_ID); - addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); - addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); -} +public: + IosQmakeBuildConfigurationFactory() + { + registerBuildConfiguration( + QmakeProjectManager::Constants::QMAKE_BC_ID); + addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); + addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); + } +}; + // IosCMakeBuildConfiguration -class IosCMakeBuildConfiguration : public CMakeProjectManager::CMakeBuildConfiguration +class IosCMakeBuildConfiguration final : public CMakeBuildConfiguration { public: IosCMakeBuildConfiguration(Target *target, Id id); private: - QList createSubConfigWidgets() override; + QList createSubConfigWidgets() final; CMakeProjectManager::CMakeConfig signingFlags() const final; @@ -548,13 +554,24 @@ CMakeConfig IosCMakeBuildConfiguration::signingFlags() const return {}; } -IosCMakeBuildConfigurationFactory::IosCMakeBuildConfigurationFactory() +class IosCMakeBuildConfigurationFactory final : public CMakeBuildConfigurationFactory { - registerBuildConfiguration( - CMakeProjectManager::Constants::CMAKE_BUILDCONFIGURATION_ID); - addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); - addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); +public: + IosCMakeBuildConfigurationFactory() + { + registerBuildConfiguration( + CMakeProjectManager::Constants::CMAKE_BUILDCONFIGURATION_ID); + addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); + addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); + } +}; + +// Factories + +void setupIosBuildConfiguration() +{ + static IosQmakeBuildConfigurationFactory theIosQmakeBuildConfigurationFactory; + static IosCMakeBuildConfigurationFactory theIosCMakeBuildConfigurationFactory; } -} // namespace Internal -} // namespace Ios +} // Ios::Internal diff --git a/src/plugins/ios/iosbuildconfiguration.h b/src/plugins/ios/iosbuildconfiguration.h index 31ed50bdff9..4f8d1c0fb4c 100644 --- a/src/plugins/ios/iosbuildconfiguration.h +++ b/src/plugins/ios/iosbuildconfiguration.h @@ -3,21 +3,8 @@ #pragma once -#include -#include - namespace Ios::Internal { -class IosQmakeBuildConfigurationFactory : public QmakeProjectManager::QmakeBuildConfigurationFactory -{ -public: - IosQmakeBuildConfigurationFactory(); -}; - -class IosCMakeBuildConfigurationFactory : public CMakeProjectManager::CMakeBuildConfigurationFactory -{ -public: - IosCMakeBuildConfigurationFactory(); -}; +void setupIosBuildConfiguration(); } // Ios::Internal diff --git a/src/plugins/ios/iosplugin.cpp b/src/plugins/ios/iosplugin.cpp index 8096d632a78..071870684ce 100644 --- a/src/plugins/ios/iosplugin.cpp +++ b/src/plugins/ios/iosplugin.cpp @@ -45,8 +45,6 @@ public: class IosPluginPrivate { public: - IosQmakeBuildConfigurationFactory qmakeBuildConfigurationFactory; - IosCMakeBuildConfigurationFactory cmakeBuildConfigurationFactory; IosRunConfigurationFactory runConfigurationFactory; IosSettingsPage settingsPage; IosQtVersionFactory qtVersionFactory; @@ -76,6 +74,7 @@ class IosPlugin final : public ExtensionSystem::IPlugin qRegisterMetaType("Ios::IosToolHandler::Dict"); setupIosToolchain(); + setupIosBuildConfiguration(); IosConfigurations::initialize();