Centralize retrieving the "parent" build configuration

If a step is part of a build configuration, that is used, but many steps
can be used as part of a deploy configuration.
In that case the active build configuration of the step's target must be
used, and that logic was duplicated many times.
Instead, let BuildStep::buildConfiguration take care of that logic. For
steps that are not offered for deploy configurations there is no
semantic difference, and for the others this removes code duplication.

Change-Id: I02f3bb50226590092cedcec02fce6fde9c7c6e63
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Eike Ziller
2018-05-17 10:26:10 +02:00
parent d2a9e1b892
commit 58bd043e27
16 changed files with 21 additions and 56 deletions

View File

@@ -72,8 +72,6 @@ IosBuildStep::IosBuildStep(BuildStepList *parent) :
bool IosBuildStep::init(QList<const BuildStep *> &earlierSteps)
{
BuildConfiguration *bc = buildConfiguration();
if (!bc)
bc = target()->activeBuildConfiguration();
if (!bc)
emit addTask(Task::buildConfigurationMissingTask());
@@ -140,7 +138,7 @@ QStringList IosBuildStep::defaultArguments() const
QStringList res;
Kit *kit = target()->kit();
ToolChain *tc = ToolChainKitInformation::toolChain(kit, ProjectExplorer::Constants::CXX_LANGUAGE_ID);
switch (target()->activeBuildConfiguration()->buildType()) {
switch (buildConfiguration()->buildType()) {
case BuildConfiguration::Debug :
res << "-configuration" << "Debug";
break;
@@ -152,7 +150,7 @@ QStringList IosBuildStep::defaultArguments() const
break;
default:
qCWarning(iosLog) << "IosBuildStep had an unknown buildType "
<< target()->activeBuildConfiguration()->buildType();
<< buildConfiguration()->buildType();
}
if (tc->typeId() == ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID
|| tc->typeId() == ProjectExplorer::Constants::CLANG_TOOLCHAIN_TYPEID) {
@@ -161,7 +159,7 @@ QStringList IosBuildStep::defaultArguments() const
}
if (!SysRootKitInformation::sysRoot(kit).isEmpty())
res << "-sdk" << SysRootKitInformation::sysRoot(kit).toString();
res << "SYMROOT=" + target()->activeBuildConfiguration()->buildDirectory().toString();
res << "SYMROOT=" + buildConfiguration()->buildDirectory().toString();
return res;
}
@@ -257,8 +255,6 @@ QString IosBuildStepConfigWidget::displayName() const
void IosBuildStepConfigWidget::updateDetails()
{
BuildConfiguration *bc = m_buildStep->buildConfiguration();
if (!bc)
bc = m_buildStep->target()->activeBuildConfiguration();
ProcessParameters param;
param.setMacroExpander(bc->macroExpander());