forked from qt-creator/qt-creator
Ios: Use aspects more directly in build configurations
Change-Id: I1fa9583fccd5bb6a93fcfea9e3977f626b790afb Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -367,25 +367,36 @@ void IosSigningSettingsWidget::updateWarningText()
|
|||||||
m_warningLabel->setText(warningText);
|
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<NamedWidget *> 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)
|
: QmakeBuildConfiguration(target, id)
|
||||||
{
|
{
|
||||||
m_signingIdentifier = addAspect<StringAspect>();
|
m_signingIdentifier.setSettingsKey(signingIdentifierKey);
|
||||||
m_signingIdentifier->setSettingsKey(signingIdentifierKey);
|
|
||||||
|
|
||||||
m_autoManagedSigning = addAspect<BoolAspect>();
|
m_autoManagedSigning.setDefaultValue(true);
|
||||||
m_autoManagedSigning->setDefaultValue(true);
|
m_autoManagedSigning.setSettingsKey(autoManagedSigningKey);
|
||||||
m_autoManagedSigning->setValue(true);
|
|
||||||
m_autoManagedSigning->setSettingsKey(autoManagedSigningKey);
|
|
||||||
|
|
||||||
connect(m_signingIdentifier,
|
connect(&m_signingIdentifier,
|
||||||
&BaseAspect::changed,
|
&BaseAspect::changed,
|
||||||
this,
|
this,
|
||||||
&IosQmakeBuildConfiguration::updateQmakeCommand);
|
&IosQmakeBuildConfiguration::updateQmakeCommand);
|
||||||
connect(m_autoManagedSigning,
|
connect(&m_autoManagedSigning,
|
||||||
&BaseAspect::changed,
|
&BaseAspect::changed,
|
||||||
this,
|
this,
|
||||||
&IosQmakeBuildConfiguration::updateQmakeCommand);
|
&IosQmakeBuildConfiguration::updateQmakeCommand);
|
||||||
@@ -397,8 +408,8 @@ QList<NamedWidget *> IosQmakeBuildConfiguration::createSubConfigWidgets()
|
|||||||
|
|
||||||
// Ownership of this widget is with BuildSettingsWidget
|
// Ownership of this widget is with BuildSettingsWidget
|
||||||
auto buildSettingsWidget = new IosSigningSettingsWidget(this,
|
auto buildSettingsWidget = new IosSigningSettingsWidget(this,
|
||||||
m_autoManagedSigning,
|
&m_autoManagedSigning,
|
||||||
m_signingIdentifier);
|
&m_signingIdentifier);
|
||||||
subConfigWidgets.prepend(buildSettingsWidget);
|
subConfigWidgets.prepend(buildSettingsWidget);
|
||||||
return subConfigWidgets;
|
return subConfigWidgets;
|
||||||
}
|
}
|
||||||
@@ -440,13 +451,13 @@ void IosQmakeBuildConfiguration::updateQmakeCommand()
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Set force ovveride qmake switch
|
// Set force ovveride qmake switch
|
||||||
const QString signingIdentifier = m_signingIdentifier->value();
|
const QString signingIdentifier = m_signingIdentifier();
|
||||||
if (signingIdentifier.isEmpty() )
|
if (signingIdentifier.isEmpty() )
|
||||||
extraArgs << forceOverrideArg;
|
extraArgs << forceOverrideArg;
|
||||||
|
|
||||||
Utils::Id devType = DeviceTypeKitAspect::deviceTypeId(kit());
|
Utils::Id devType = DeviceTypeKitAspect::deviceTypeId(kit());
|
||||||
if (devType == Constants::IOS_DEVICE_TYPE && !signingIdentifier.isEmpty()) {
|
if (devType == Constants::IOS_DEVICE_TYPE && !signingIdentifier.isEmpty()) {
|
||||||
if (m_autoManagedSigning->value()) {
|
if (m_autoManagedSigning()) {
|
||||||
extraArgs << qmakeIosTeamSettings + signingIdentifier;
|
extraArgs << qmakeIosTeamSettings + signingIdentifier;
|
||||||
} else {
|
} else {
|
||||||
const QString teamId = teamIdForProvisioningProfile(signingIdentifier);
|
const QString teamId = teamIdForProvisioningProfile(signingIdentifier);
|
||||||
@@ -469,22 +480,36 @@ IosQmakeBuildConfigurationFactory::IosQmakeBuildConfigurationFactory()
|
|||||||
addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE);
|
addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IosCMakeBuildConfiguration
|
||||||
|
|
||||||
|
class IosCMakeBuildConfiguration : public CMakeProjectManager::CMakeBuildConfiguration
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
IosCMakeBuildConfiguration(Target *target, Id id);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QList<NamedWidget *> 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)
|
IosCMakeBuildConfiguration::IosCMakeBuildConfiguration(Target *target, Id id)
|
||||||
: CMakeBuildConfiguration(target, id)
|
: CMakeBuildConfiguration(target, id)
|
||||||
{
|
{
|
||||||
m_signingIdentifier = addAspect<StringAspect>();
|
m_signingIdentifier.setSettingsKey(signingIdentifierKey);
|
||||||
m_signingIdentifier->setSettingsKey(signingIdentifierKey);
|
|
||||||
|
|
||||||
m_autoManagedSigning = addAspect<BoolAspect>();
|
m_autoManagedSigning.setDefaultValue(true);
|
||||||
m_autoManagedSigning->setDefaultValue(true);
|
m_autoManagedSigning.setSettingsKey(autoManagedSigningKey);
|
||||||
m_autoManagedSigning->setValue(true);
|
|
||||||
m_autoManagedSigning->setSettingsKey(autoManagedSigningKey);
|
|
||||||
|
|
||||||
connect(m_signingIdentifier,
|
connect(&m_signingIdentifier,
|
||||||
&BaseAspect::changed,
|
&BaseAspect::changed,
|
||||||
this,
|
this,
|
||||||
&IosCMakeBuildConfiguration::signingFlagsChanged);
|
&IosCMakeBuildConfiguration::signingFlagsChanged);
|
||||||
connect(m_autoManagedSigning,
|
connect(&m_autoManagedSigning,
|
||||||
&BaseAspect::changed,
|
&BaseAspect::changed,
|
||||||
this,
|
this,
|
||||||
&IosCMakeBuildConfiguration::signingFlagsChanged);
|
&IosCMakeBuildConfiguration::signingFlagsChanged);
|
||||||
@@ -496,8 +521,8 @@ QList<NamedWidget *> IosCMakeBuildConfiguration::createSubConfigWidgets()
|
|||||||
|
|
||||||
// Ownership of this widget is with BuildSettingsWidget
|
// Ownership of this widget is with BuildSettingsWidget
|
||||||
auto buildSettingsWidget = new IosSigningSettingsWidget(this,
|
auto buildSettingsWidget = new IosSigningSettingsWidget(this,
|
||||||
m_autoManagedSigning,
|
&m_autoManagedSigning,
|
||||||
m_signingIdentifier);
|
&m_signingIdentifier);
|
||||||
subConfigWidgets.prepend(buildSettingsWidget);
|
subConfigWidgets.prepend(buildSettingsWidget);
|
||||||
return subConfigWidgets;
|
return subConfigWidgets;
|
||||||
}
|
}
|
||||||
@@ -513,8 +538,8 @@ CMakeConfig IosCMakeBuildConfiguration::signingFlags() const
|
|||||||
{
|
{
|
||||||
if (DeviceTypeKitAspect::deviceTypeId(kit()) != Constants::IOS_DEVICE_TYPE)
|
if (DeviceTypeKitAspect::deviceTypeId(kit()) != Constants::IOS_DEVICE_TYPE)
|
||||||
return {};
|
return {};
|
||||||
const QString signingIdentifier = m_signingIdentifier->value();
|
const QString signingIdentifier = m_signingIdentifier();
|
||||||
if (m_autoManagedSigning->value()) {
|
if (m_autoManagedSigning()) {
|
||||||
const DevelopmentTeams teams = IosConfigurations::developmentTeams();
|
const DevelopmentTeams teams = IosConfigurations::developmentTeams();
|
||||||
const QString teamId = signingIdentifier.isEmpty() && !teams.isEmpty()
|
const QString teamId = signingIdentifier.isEmpty() && !teams.isEmpty()
|
||||||
? teams.first()->identifier()
|
? teams.first()->identifier()
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
// Copyright (C) 2016 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <qmakeprojectmanager/qmakebuildconfiguration.h>
|
#include <qmakeprojectmanager/qmakebuildconfiguration.h>
|
||||||
@@ -7,42 +8,12 @@
|
|||||||
|
|
||||||
namespace Ios::Internal {
|
namespace Ios::Internal {
|
||||||
|
|
||||||
class IosQmakeBuildConfiguration : public QmakeProjectManager::QmakeBuildConfiguration
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
IosQmakeBuildConfiguration(ProjectExplorer::Target *target, Utils::Id id);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QList<ProjectExplorer::NamedWidget *> 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
|
class IosQmakeBuildConfigurationFactory : public QmakeProjectManager::QmakeBuildConfigurationFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
IosQmakeBuildConfigurationFactory();
|
IosQmakeBuildConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|
||||||
class IosCMakeBuildConfiguration : public CMakeProjectManager::CMakeBuildConfiguration
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
IosCMakeBuildConfiguration(ProjectExplorer::Target *target, Utils::Id id);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QList<ProjectExplorer::NamedWidget *> 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
|
class IosCMakeBuildConfigurationFactory : public CMakeProjectManager::CMakeBuildConfigurationFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user