From a3be2c08eef0dfdbdec53000f552b6f028ec4d04 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 31 Mar 2017 17:17:20 +0200 Subject: [PATCH] CMake: Fix clean target Always list a "all" and "clean" targets and remove the similar code in the tealeaf reader. This fixes the clean-step falling back to "all" in server-mode. Task-number: QTCREATORBUG-17138 Change-Id: I1ce84f03c2e9829e4bb5f550c10cdef772fabf5b Reviewed-by: Tim Jenssen --- .../cmakeprojectmanager/cmakebuildstep.cpp | 21 ++++++++++++------- .../cmakeprojectmanager/cmakecbpparser.cpp | 9 -------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 24ce40dcaa0..f92f129c090 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -444,19 +444,26 @@ QString CMakeBuildStepConfigWidget::displayName() const return tr("Build", "CMakeProjectManager::CMakeBuildStepConfigWidget display name."); } +static void createSpecialItem(const QString &text, const QString &data, QListWidget *parent) +{ + auto item = new QListWidgetItem(text, parent); + + item->setData(Qt::UserRole, data); + QFont f; + f.setItalic(true); + item->setFont(f); +} + void CMakeBuildStepConfigWidget::buildTargetsChanged() { const bool wasBlocked = m_buildTargetsList->blockSignals(true); m_buildTargetsList->clear(); - auto item = new QListWidgetItem(tr(ADD_RUNCONFIGURATION_TEXT), m_buildTargetsList); + createSpecialItem(tr(ADD_RUNCONFIGURATION_TEXT), ADD_RUNCONFIGURATION_TEXT, m_buildTargetsList); + createSpecialItem(tr("all"), "all", m_buildTargetsList); + createSpecialItem(tr("clean"), "clean", m_buildTargetsList); - item->setData(Qt::UserRole, QString::fromLatin1(ADD_RUNCONFIGURATION_TEXT)); - QFont f; - f.setItalic(true); - item->setFont(f); - - CMakeProject *pro = static_cast(m_buildStep->project()); + auto pro = static_cast(m_buildStep->project()); QStringList targetList = pro->buildTargetTitles(); targetList.sort(); diff --git a/src/plugins/cmakeprojectmanager/cmakecbpparser.cpp b/src/plugins/cmakeprojectmanager/cmakecbpparser.cpp index 350950388f7..591768f515e 100644 --- a/src/plugins/cmakeprojectmanager/cmakecbpparser.cpp +++ b/src/plugins/cmakeprojectmanager/cmakecbpparser.cpp @@ -180,15 +180,6 @@ bool CMakeCbpParser::parseCbpFile(CMakeTool::PathMapper mapper, const FileName & fi.close(); - // There is always a clean target: - CMakeBuildTarget cleanTarget; - cleanTarget.title = "clean"; - cleanTarget.targetType = UtilityType; - cleanTarget.workingDirectory = m_buildDirectory; - cleanTarget.sourceDirectory = m_sourceDirectory; - - m_buildTargets.append(cleanTarget); - return true; } return false;