From 28c22ff57e4d589ed22ba0fd7cea06b543e01cf5 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 3 Jun 2020 11:27:37 +0200 Subject: [PATCH] CMake: Inject special build targets into list of extracted targets Inject special targets like all, test and install into the list of targets that get reported by CMake. This makes those available in the locator again. Task-number: QTCREATORBUG-24064 Change-Id: I08f1232d243afbe0800c1dc308a00917c98ccf8a Reviewed-by: Tobias Hunger --- src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | 5 +---- .../cmakeprojectmanager/cmakebuildsystem.cpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index da45772a13d..fdc849ae696 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -528,11 +528,8 @@ void CMakeBuildStepConfigWidget::buildTargetsChanged() addItem(ADD_RUNCONFIGURATION_TEXT, tr(ADD_RUNCONFIGURATION_TEXT), true); - foreach (const QString &buildTarget, CMakeBuildStep::specialTargets()) - addItem(buildTarget, buildTarget, true); - foreach (const QString &buildTarget, targetList) - addItem(buildTarget, buildTarget); + addItem(buildTarget, buildTarget, CMakeBuildStep::specialTargets().contains(buildTarget)); updateBuildTargets(); } diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 5b89209e0ed..48ef90f682a 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -27,11 +27,14 @@ #include "builddirparameters.h" #include "cmakebuildconfiguration.h" +#include "cmakebuildstep.h" +#include "cmakebuildtarget.h" #include "cmakekitinformation.h" #include "cmakeprojectconstants.h" #include "cmakeprojectnodes.h" #include "cmakeprojectplugin.h" #include "cmakespecificsettings.h" +#include "utils/algorithm.h" #include #include @@ -57,6 +60,7 @@ #include #include #include +#include #include #include @@ -621,7 +625,14 @@ void CMakeBuildSystem::handleParsingSucceeded() QString errorMessage; { - m_buildTargets = m_reader.takeBuildTargets(errorMessage); + m_buildTargets = Utils::transform(CMakeBuildStep::specialTargets(), [this](const QString &t) { + CMakeBuildTarget result; + result.title = t; + result.workingDirectory = m_parameters.workDirectory; + result.sourceDirectory = m_parameters.sourceDirectory; + return result; + }); + m_buildTargets += m_reader.takeBuildTargets(errorMessage); checkAndReportError(errorMessage); }