From 66ecfb15d11ba15a07523b080ce3b4efd6b70324 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 12 Jul 2023 17:21:51 +0200 Subject: [PATCH] Ios: Use aspects more directly in build configurations Change-Id: I1fa9583fccd5bb6a93fcfea9e3977f626b790afb Reviewed-by: Christian Stenger --- src/plugins/ios/iosbuildconfiguration.cpp | 77 +++++++++++++++-------- src/plugins/ios/iosbuildconfiguration.h | 31 +-------- 2 files changed, 52 insertions(+), 56 deletions(-) diff --git a/src/plugins/ios/iosbuildconfiguration.cpp b/src/plugins/ios/iosbuildconfiguration.cpp index 84b58f53022..d9b1af12f0e 100644 --- a/src/plugins/ios/iosbuildconfiguration.cpp +++ b/src/plugins/ios/iosbuildconfiguration.cpp @@ -367,25 +367,36 @@ void IosSigningSettingsWidget::updateWarningText() m_warningLabel->setText(warningText); } +// IosQmakeBuildConfiguration -// IosBuildConfiguration +class IosQmakeBuildConfiguration : public QmakeProjectManager::QmakeBuildConfiguration +{ +public: + IosQmakeBuildConfiguration(Target *target, Id id); -IosQmakeBuildConfiguration::IosQmakeBuildConfiguration(Target *target, Utils::Id id) +private: + QList createSubConfigWidgets() override; + bool fromMap(const QVariantMap &map) override; + + void updateQmakeCommand(); + + StringAspect m_signingIdentifier{this}; + BoolAspect m_autoManagedSigning{this}; +}; + +IosQmakeBuildConfiguration::IosQmakeBuildConfiguration(Target *target, Id id) : QmakeBuildConfiguration(target, id) { - m_signingIdentifier = addAspect(); - m_signingIdentifier->setSettingsKey(signingIdentifierKey); + m_signingIdentifier.setSettingsKey(signingIdentifierKey); - m_autoManagedSigning = addAspect(); - m_autoManagedSigning->setDefaultValue(true); - m_autoManagedSigning->setValue(true); - m_autoManagedSigning->setSettingsKey(autoManagedSigningKey); + m_autoManagedSigning.setDefaultValue(true); + m_autoManagedSigning.setSettingsKey(autoManagedSigningKey); - connect(m_signingIdentifier, + connect(&m_signingIdentifier, &BaseAspect::changed, this, &IosQmakeBuildConfiguration::updateQmakeCommand); - connect(m_autoManagedSigning, + connect(&m_autoManagedSigning, &BaseAspect::changed, this, &IosQmakeBuildConfiguration::updateQmakeCommand); @@ -397,8 +408,8 @@ QList IosQmakeBuildConfiguration::createSubConfigWidgets() // Ownership of this widget is with BuildSettingsWidget auto buildSettingsWidget = new IosSigningSettingsWidget(this, - m_autoManagedSigning, - m_signingIdentifier); + &m_autoManagedSigning, + &m_signingIdentifier); subConfigWidgets.prepend(buildSettingsWidget); return subConfigWidgets; } @@ -440,13 +451,13 @@ void IosQmakeBuildConfiguration::updateQmakeCommand() }); // Set force ovveride qmake switch - const QString signingIdentifier = m_signingIdentifier->value(); + const QString signingIdentifier = m_signingIdentifier(); if (signingIdentifier.isEmpty() ) extraArgs << forceOverrideArg; Utils::Id devType = DeviceTypeKitAspect::deviceTypeId(kit()); if (devType == Constants::IOS_DEVICE_TYPE && !signingIdentifier.isEmpty()) { - if (m_autoManagedSigning->value()) { + if (m_autoManagedSigning()) { extraArgs << qmakeIosTeamSettings + signingIdentifier; } else { const QString teamId = teamIdForProvisioningProfile(signingIdentifier); @@ -469,22 +480,36 @@ IosQmakeBuildConfigurationFactory::IosQmakeBuildConfigurationFactory() addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); } +// IosCMakeBuildConfiguration + +class IosCMakeBuildConfiguration : public CMakeProjectManager::CMakeBuildConfiguration +{ +public: + IosCMakeBuildConfiguration(Target *target, Id id); + +private: + QList createSubConfigWidgets() override; + bool fromMap(const QVariantMap &map) override; + + CMakeProjectManager::CMakeConfig signingFlags() const final; + + StringAspect m_signingIdentifier{this}; + BoolAspect m_autoManagedSigning{this}; +}; + IosCMakeBuildConfiguration::IosCMakeBuildConfiguration(Target *target, Id id) : CMakeBuildConfiguration(target, id) { - m_signingIdentifier = addAspect(); - m_signingIdentifier->setSettingsKey(signingIdentifierKey); + m_signingIdentifier.setSettingsKey(signingIdentifierKey); - m_autoManagedSigning = addAspect(); - m_autoManagedSigning->setDefaultValue(true); - m_autoManagedSigning->setValue(true); - m_autoManagedSigning->setSettingsKey(autoManagedSigningKey); + m_autoManagedSigning.setDefaultValue(true); + m_autoManagedSigning.setSettingsKey(autoManagedSigningKey); - connect(m_signingIdentifier, + connect(&m_signingIdentifier, &BaseAspect::changed, this, &IosCMakeBuildConfiguration::signingFlagsChanged); - connect(m_autoManagedSigning, + connect(&m_autoManagedSigning, &BaseAspect::changed, this, &IosCMakeBuildConfiguration::signingFlagsChanged); @@ -496,8 +521,8 @@ QList IosCMakeBuildConfiguration::createSubConfigWidgets() // Ownership of this widget is with BuildSettingsWidget auto buildSettingsWidget = new IosSigningSettingsWidget(this, - m_autoManagedSigning, - m_signingIdentifier); + &m_autoManagedSigning, + &m_signingIdentifier); subConfigWidgets.prepend(buildSettingsWidget); return subConfigWidgets; } @@ -513,8 +538,8 @@ CMakeConfig IosCMakeBuildConfiguration::signingFlags() const { if (DeviceTypeKitAspect::deviceTypeId(kit()) != Constants::IOS_DEVICE_TYPE) return {}; - const QString signingIdentifier = m_signingIdentifier->value(); - if (m_autoManagedSigning->value()) { + const QString signingIdentifier = m_signingIdentifier(); + if (m_autoManagedSigning()) { const DevelopmentTeams teams = IosConfigurations::developmentTeams(); const QString teamId = signingIdentifier.isEmpty() && !teams.isEmpty() ? teams.first()->identifier() diff --git a/src/plugins/ios/iosbuildconfiguration.h b/src/plugins/ios/iosbuildconfiguration.h index 5549dfef87a..31ed50bdff9 100644 --- a/src/plugins/ios/iosbuildconfiguration.h +++ b/src/plugins/ios/iosbuildconfiguration.h @@ -1,5 +1,6 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + #pragma once #include @@ -7,42 +8,12 @@ namespace Ios::Internal { -class IosQmakeBuildConfiguration : public QmakeProjectManager::QmakeBuildConfiguration -{ -public: - IosQmakeBuildConfiguration(ProjectExplorer::Target *target, Utils::Id id); - -private: - QList createSubConfigWidgets() override; - bool fromMap(const QVariantMap &map) override; - - void updateQmakeCommand(); - - Utils::StringAspect *m_signingIdentifier = nullptr; - Utils::BoolAspect *m_autoManagedSigning = nullptr; -}; - class IosQmakeBuildConfigurationFactory : public QmakeProjectManager::QmakeBuildConfigurationFactory { public: IosQmakeBuildConfigurationFactory(); }; -class IosCMakeBuildConfiguration : public CMakeProjectManager::CMakeBuildConfiguration -{ -public: - IosCMakeBuildConfiguration(ProjectExplorer::Target *target, Utils::Id id); - -private: - QList createSubConfigWidgets() override; - bool fromMap(const QVariantMap &map) override; - - CMakeProjectManager::CMakeConfig signingFlags() const final; - - Utils::StringAspect *m_signingIdentifier = nullptr; - Utils::BoolAspect *m_autoManagedSigning = nullptr; -}; - class IosCMakeBuildConfigurationFactory : public CMakeProjectManager::CMakeBuildConfigurationFactory { public: