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

@@ -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();