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 <tobias.hunger@qt.io>
This commit is contained in:
Tobias Hunger
2020-06-03 11:27:37 +02:00
parent 19154bf0e7
commit 28c22ff57e
2 changed files with 13 additions and 5 deletions

View File

@@ -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 <android/androidconstants.h>
#include <coreplugin/icore.h>
@@ -57,6 +60,7 @@
#include <QClipboard>
#include <QDir>
#include <QGuiApplication>
#include <QHash>
#include <QLoggingCategory>
#include <QPushButton>
@@ -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);
}