diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2019-07-23 13:05:07 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2019-07-29 12:16:10 +0000 |
commit | 9481845293a863e6d37af2abad9b3a2fdb9f075d (patch) | |
tree | 27f6a783ce034a8029943bf022865b4d83e52a00 /src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | |
parent | f9659211ac4dffacc62437ef5363300e42f243c2 (diff) |
CMake: Add helper method to find the default build target for a BuildStep
Add a helper method to find the default build target for a CMakeBuildStep
based on the BuildStepList the step is part of. Use all/install/clean
targets as appropriate.
This change has been cherry-picked from master branch:
8b9821440d0c74083476f5b80c7212de71d4013a
Change-Id: Idc0c5fae7dfd255039b87ace77c02688cdd76e8f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakebuildstep.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 911ac7ae2f0..cc2bcbfeb60 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -91,14 +91,8 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl) : } // Set a good default build target: - if (m_buildTarget.isEmpty()) { - if (bsl->id() == ProjectExplorer::Constants::BUILDSTEPS_CLEAN) - setBuildTarget(cleanTarget()); - else if (bsl->id() == ProjectExplorer::Constants::BUILDSTEPS_DEPLOY) - setBuildTarget(installTarget()); - else - setBuildTarget(allTarget()); - } + if (m_buildTarget.isEmpty()) + setBuildTarget(defaultBuildTarget()); connect(target(), &Target::kitChanged, this, &CMakeBuildStep::cmakeCommandChanged); connect(project(), &Project::parsingFinished, @@ -277,6 +271,17 @@ BuildStepConfigWidget *CMakeBuildStep::createConfigWidget() return new CMakeBuildStepConfigWidget(this); } +QString CMakeBuildStep::defaultBuildTarget() const +{ + const ProjectConfiguration *const pc = qobject_cast<ProjectConfiguration *>(parent()); + const Core::Id parentId = pc ? pc->id() : Core::Id(); + if (parentId == ProjectExplorer::Constants::BUILDSTEPS_CLEAN) + return cleanTarget(); + if (parentId == ProjectExplorer::Constants::BUILDSTEPS_DEPLOY) + return installTarget(); + return allTarget(); +} + void CMakeBuildStep::stdOutput(const QString &line) { if (m_percentProgress.indexIn(line) != -1) { |