aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-05-17 10:26:10 +0200
committerEike Ziller <eike.ziller@qt.io>2018-05-22 12:18:36 +0000
commit58bd043e2722e7670008fb180faf982294221d4c (patch)
treeb062e9e013ad02c0b769695d64d4655784bae7f5
parentd2a9e1b892456b0500bdc79ca749d2bdf02afab5 (diff)
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>
-rw-r--r--src/plugins/android/androiddeployqtstep.cpp6
-rw-r--r--src/plugins/autotoolsprojectmanager/makestep.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildstep.cpp11
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildstep.h1
-rw-r--r--src/plugins/genericprojectmanager/genericmakestep.cpp2
-rw-r--r--src/plugins/ios/iosbuildstep.cpp10
-rw-r--r--src/plugins/ios/iosdsymbuildstep.cpp4
-rw-r--r--src/plugins/projectexplorer/buildstep.cpp12
-rw-r--r--src/plugins/projectexplorer/makestep.cpp4
-rw-r--r--src/plugins/projectexplorer/processstep.cpp8
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.cpp4
-rw-r--r--src/plugins/qbsprojectmanager/qbscleanstep.cpp2
-rw-r--r--src/plugins/qbsprojectmanager/qbsinstallstep.cpp3
-rw-r--r--src/plugins/qmakeprojectmanager/qmakemakestep.cpp2
-rw-r--r--src/plugins/remotelinux/abstractpackagingstep.cpp2
-rw-r--r--src/plugins/winrt/winrtpackagedeploymentstep.cpp2
16 files changed, 21 insertions, 56 deletions
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp
index 1a110dbb2b..78166ffea3 100644
--- a/src/plugins/android/androiddeployqtstep.cpp
+++ b/src/plugins/android/androiddeployqtstep.cpp
@@ -120,7 +120,7 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
}
AndroidBuildApkStep *androidBuildApkStep
- = AndroidGlobal::buildStep<AndroidBuildApkStep>(target()->activeBuildConfiguration());
+ = AndroidGlobal::buildStep<AndroidBuildApkStep>(buildConfiguration());
if (!androidBuildApkStep)
emit addOutput(tr("Cannot find the android build step."), OutputFormat::Stderr);
@@ -137,7 +137,7 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
m_avdName = info.avdname;
m_serialNumber = info.serialNumber;
- ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration();
+ ProjectExplorer::BuildConfiguration *bc = buildConfiguration();
m_filesToPull.clear();
QString buildDir = bc ? bc->buildDirectory().toString() : QString();
if (bc && !buildDir.endsWith("/")) {
@@ -390,7 +390,7 @@ void AndroidDeployQtStep::run(QFutureInterface<bool> &fi)
emit setSerialNumber(serialNumber);
}
- if (!target()->activeBuildConfiguration()) { // nothing to deploy
+ if (!buildConfiguration()) { // nothing to deploy
reportRunResult(fi, true);
return;
}
diff --git a/src/plugins/autotoolsprojectmanager/makestep.cpp b/src/plugins/autotoolsprojectmanager/makestep.cpp
index 222978d44a..26b3a39b5c 100644
--- a/src/plugins/autotoolsprojectmanager/makestep.cpp
+++ b/src/plugins/autotoolsprojectmanager/makestep.cpp
@@ -83,8 +83,6 @@ bool MakeStep::init(QList<const BuildStep *> &earlierSteps)
{
BuildConfiguration *bc = buildConfiguration();
if (!bc)
- bc = target()->activeBuildConfiguration();
- if (!bc)
emit addTask(Task::buildConfigurationMissingTask());
QList<ToolChain *> tcList = ToolChainKitInformation::toolChains(target()->kit());
@@ -227,8 +225,6 @@ QString MakeStepConfigWidget::summaryText() const
void MakeStepConfigWidget::updateDetails()
{
BuildConfiguration *bc = m_makeStep->buildConfiguration();
- if (!bc)
- bc = m_makeStep->target()->activeBuildConfiguration();
QList<ToolChain *> tcList = ToolChainKitInformation::toolChains(m_makeStep->target()->kit());
if (!tcList.isEmpty()) {
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
index a72cefd38c..186500b03e 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
@@ -109,11 +109,6 @@ CMakeBuildConfiguration *CMakeBuildStep::cmakeBuildConfiguration() const
return static_cast<CMakeBuildConfiguration *>(buildConfiguration());
}
-CMakeBuildConfiguration *CMakeBuildStep::targetsActiveBuildConfiguration() const
-{
- return static_cast<CMakeBuildConfiguration *>(target()->activeBuildConfiguration());
-}
-
CMakeRunConfiguration *CMakeBuildStep::targetsActiveRunConfiguration() const
{
return qobject_cast<CMakeRunConfiguration *>(target()->activeRunConfiguration());
@@ -154,8 +149,6 @@ bool CMakeBuildStep::init(QList<const BuildStep *> &earlierSteps)
{
bool canInit = true;
CMakeBuildConfiguration *bc = cmakeBuildConfiguration();
- if (!bc)
- bc = targetsActiveBuildConfiguration();
if (!bc) {
emit addTask(Task::buildConfigurationMissingTask());
canInit = false;
@@ -241,8 +234,6 @@ void CMakeBuildStep::run(QFutureInterface<bool> &fi)
{
// Make sure CMake state was written to disk before trying to build:
CMakeBuildConfiguration *bc = cmakeBuildConfiguration();
- if (!bc)
- bc = targetsActiveBuildConfiguration();
QTC_ASSERT(bc, return);
bool mustDelay = false;
@@ -535,8 +526,6 @@ void CMakeBuildStepConfigWidget::selectedBuildTargetsChanged()
void CMakeBuildStepConfigWidget::updateDetails()
{
BuildConfiguration *bc = m_buildStep->buildConfiguration();
- if (!bc)
- bc = m_buildStep->targetsActiveBuildConfiguration();
if (!bc) {
m_summaryText = tr("<b>No build configuration found on this kit.</b>");
emit updateSummary();
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.h b/src/plugins/cmakeprojectmanager/cmakebuildstep.h
index 68c40d5752..855f582d81 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.h
@@ -55,7 +55,6 @@ public:
explicit CMakeBuildStep(ProjectExplorer::BuildStepList *bsl);
CMakeBuildConfiguration *cmakeBuildConfiguration() const;
- CMakeBuildConfiguration *targetsActiveBuildConfiguration() const;
bool init(QList<const BuildStep *> &earlierSteps) override;
void run(QFutureInterface<bool> &fi) override;
diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp
index d8d22395f8..00edf3a1d4 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.cpp
+++ b/src/plugins/genericprojectmanager/genericmakestep.cpp
@@ -52,8 +52,6 @@ bool GenericMakeStep::init(QList<const BuildStep *> &earlierSteps)
{
BuildConfiguration *bc = buildConfiguration();
if (!bc)
- bc = target()->activeBuildConfiguration();
- if (!bc)
emit addTask(Task::buildConfigurationMissingTask());
ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID);
diff --git a/src/plugins/ios/iosbuildstep.cpp b/src/plugins/ios/iosbuildstep.cpp
index 61fb670c90..3c04cc7080 100644
--- a/src/plugins/ios/iosbuildstep.cpp
+++ b/src/plugins/ios/iosbuildstep.cpp
@@ -73,8 +73,6 @@ bool IosBuildStep::init(QList<const BuildStep *> &earlierSteps)
{
BuildConfiguration *bc = buildConfiguration();
if (!bc)
- bc = target()->activeBuildConfiguration();
- if (!bc)
emit addTask(Task::buildConfigurationMissingTask());
ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID);
@@ -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());
diff --git a/src/plugins/ios/iosdsymbuildstep.cpp b/src/plugins/ios/iosdsymbuildstep.cpp
index 2cf4834bc6..3fc3c090dc 100644
--- a/src/plugins/ios/iosdsymbuildstep.cpp
+++ b/src/plugins/ios/iosdsymbuildstep.cpp
@@ -64,8 +64,6 @@ IosDsymBuildStep::IosDsymBuildStep(BuildStepList *parent) :
bool IosDsymBuildStep::init(QList<const BuildStep *> &earlierSteps)
{
BuildConfiguration *bc = buildConfiguration();
- if (!bc)
- bc = target()->activeBuildConfiguration();
ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander());
@@ -277,8 +275,6 @@ QString IosDsymBuildStepConfigWidget::displayName() const
void IosDsymBuildStepConfigWidget::updateDetails()
{
BuildConfiguration *bc = m_buildStep->buildConfiguration();
- if (!bc)
- bc = m_buildStep->target()->activeBuildConfiguration();
ProcessParameters param;
param.setMacroExpander(bc->macroExpander());
diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp
index 232a95483a..864fdbf6b3 100644
--- a/src/plugins/projectexplorer/buildstep.cpp
+++ b/src/plugins/projectexplorer/buildstep.cpp
@@ -140,12 +140,20 @@ QVariantMap BuildStep::toMap() const
BuildConfiguration *BuildStep::buildConfiguration() const
{
- return qobject_cast<BuildConfiguration *>(parent()->parent());
+ auto config = qobject_cast<BuildConfiguration *>(parent()->parent());
+ if (config)
+ return config;
+ // step is not part of a build configuration, use active build configuration of step's target
+ return target()->activeBuildConfiguration();
}
DeployConfiguration *BuildStep::deployConfiguration() const
{
- return qobject_cast<DeployConfiguration *>(parent()->parent());
+ auto config = qobject_cast<DeployConfiguration *>(parent()->parent());
+ if (config)
+ return config;
+ // step is not part of a deploy configuration, use active deploy configuration of step's target
+ return target()->activeDeployConfiguration();
}
ProjectConfiguration *BuildStep::projectConfiguration() const
diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp
index c970b03b33..70853ac8f2 100644
--- a/src/plugins/projectexplorer/makestep.cpp
+++ b/src/plugins/projectexplorer/makestep.cpp
@@ -121,8 +121,6 @@ QString MakeStep::effectiveMakeCommand() const
if (!m_makeCommand.isEmpty())
return m_makeCommand;
BuildConfiguration *bc = buildConfiguration();
- if (!bc)
- bc = target()->activeBuildConfiguration();
ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID);
if (bc && tc)
return tc->makeCommand(bc->environment());
@@ -245,8 +243,6 @@ void MakeStepConfigWidget::updateDetails()
ToolChain *tc
= ToolChainKitInformation::toolChain(m_makeStep->target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID);
BuildConfiguration *bc = m_makeStep->buildConfiguration();
- if (!bc)
- bc = m_makeStep->target()->activeBuildConfiguration();
const QString make = tc && bc ? tc->makeCommand(bc->environment()) : QString();
if (make.isEmpty())
diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp
index 82805fa3ee..81e463eb10 100644
--- a/src/plugins/projectexplorer/processstep.cpp
+++ b/src/plugins/projectexplorer/processstep.cpp
@@ -58,8 +58,6 @@ ProcessStep::ProcessStep(BuildStepList *bsl)
bool ProcessStep::init(QList<const BuildStep *> &earlierSteps)
{
BuildConfiguration *bc = buildConfiguration();
- if (!bc)
- bc = target()->activeBuildConfiguration();
ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc ? bc->macroExpander() : Utils::globalMacroExpander());
pp->setEnvironment(bc ? bc->environment() : Utils::Environment::systemEnvironment());
@@ -115,7 +113,7 @@ void ProcessStep::setArguments(const QString &arguments)
void ProcessStep::setWorkingDirectory(const QString &workingDirectory)
{
if (workingDirectory.isEmpty())
- if (target()->activeBuildConfiguration())
+ if (buildConfiguration())
m_workingDirectory = Constants::DEFAULT_WORKING_DIR;
else
m_workingDirectory = Constants::DEFAULT_WORKING_DIR_ALTERNATE;
@@ -163,8 +161,6 @@ ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step) :
m_ui.workingDirectory->setExpectedKind(Utils::PathChooser::Directory);
BuildConfiguration *bc = m_step->buildConfiguration();
- if (!bc)
- bc = m_step->target()->activeBuildConfiguration();
Utils::Environment env = bc ? bc->environment() : Utils::Environment::systemEnvironment();
m_ui.command->setEnvironment(env);
m_ui.command->setPath(m_step->command());
@@ -193,8 +189,6 @@ void ProcessStepConfigWidget::updateDetails()
displayName = tr("Custom Process Step");
ProcessParameters param;
BuildConfiguration *bc = m_step->buildConfiguration();
- if (!bc) // iff the step is actually in the deploy list
- bc = m_step->target()->activeBuildConfiguration();
param.setMacroExpander(bc ? bc->macroExpander() : Utils::globalMacroExpander());
param.setEnvironment(bc ? bc->environment() : Utils::Environment::systemEnvironment());
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
index c01db641e3..a8aa93f060 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
@@ -149,8 +149,6 @@ bool QbsBuildStep::init(QList<const BuildStep *> &earlierSteps)
return false;
QbsBuildConfiguration *bc = static_cast<QbsBuildConfiguration *>(buildConfiguration());
- if (!bc)
- bc = static_cast<QbsBuildConfiguration *>(target()->activeBuildConfiguration());
if (!bc)
return false;
@@ -549,7 +547,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
this, &QbsBuildStepConfigWidget::updateState);
step->target()->subscribeSignal(&ProjectExplorer::BuildConfiguration::buildDirectoryChanged,
this, [this]() {
- if (m_step->target()->activeBuildConfiguration() == sender())
+ if (m_step->buildConfiguration() == sender())
updateState();
});
diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
index b47610a446..d928ae317c 100644
--- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
@@ -70,8 +70,6 @@ bool QbsCleanStep::init(QList<const BuildStep *> &earlierSteps)
return false;
QbsBuildConfiguration *bc = static_cast<QbsBuildConfiguration *>(buildConfiguration());
- if (!bc)
- bc = static_cast<QbsBuildConfiguration *>(target()->activeBuildConfiguration());
if (!bc)
return false;
diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
index fdd3af1dfe..6e590ff209 100644
--- a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
@@ -146,8 +146,7 @@ bool QbsInstallStep::keepGoing() const
const QbsBuildConfiguration *QbsInstallStep::buildConfig() const
{
- return static_cast<QbsBuildConfiguration *>(
- deployConfiguration()->target()->activeBuildConfiguration());
+ return static_cast<QbsBuildConfiguration *>(buildConfiguration());
}
bool QbsInstallStep::fromMap(const QVariantMap &map)
diff --git a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp
index 43498a2c45..c853e5d614 100644
--- a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp
@@ -70,8 +70,6 @@ bool QmakeMakeStep::init(QList<const BuildStep *> &earlierSteps)
{
QmakeBuildConfiguration *bc = qmakeBuildConfiguration();
if (!bc)
- bc = qobject_cast<QmakeBuildConfiguration *>(target()->activeBuildConfiguration());
- if (!bc)
emit addTask(Task::buildConfigurationMissingTask());
ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID);
diff --git a/src/plugins/remotelinux/abstractpackagingstep.cpp b/src/plugins/remotelinux/abstractpackagingstep.cpp
index 72df1a7fc7..5ee20c341f 100644
--- a/src/plugins/remotelinux/abstractpackagingstep.cpp
+++ b/src/plugins/remotelinux/abstractpackagingstep.cpp
@@ -75,7 +75,7 @@ void AbstractPackagingStep::handleBuildConfigurationChanged()
{
if (d->currentBuildConfiguration)
disconnect(d->currentBuildConfiguration, 0, this, 0);
- d->currentBuildConfiguration = target()->activeBuildConfiguration();
+ d->currentBuildConfiguration = buildConfiguration();
if (d->currentBuildConfiguration) {
connect(d->currentBuildConfiguration, &BuildConfiguration::buildDirectoryChanged,
this, &AbstractPackagingStep::packageFilePathChanged);
diff --git a/src/plugins/winrt/winrtpackagedeploymentstep.cpp b/src/plugins/winrt/winrtpackagedeploymentstep.cpp
index 9d2710192d..050941e042 100644
--- a/src/plugins/winrt/winrtpackagedeploymentstep.cpp
+++ b/src/plugins/winrt/winrtpackagedeploymentstep.cpp
@@ -95,7 +95,7 @@ bool WinRtPackageDeploymentStep::init(QList<const BuildStep *> &earlierSteps)
ProcessParameters *params = processParameters();
params->setCommand(QLatin1String("windeployqt.exe"));
params->setArguments(args);
- params->setEnvironment(target()->activeBuildConfiguration()->environment());
+ params->setEnvironment(buildConfiguration()->environment());
return AbstractProcessStep::init(earlierSteps);
}