forked from qt-creator/qt-creator
CMake: Allow to build target from context menu of CMakeTargetNodes
Change-Id: I0457abd6dabea1699272482eb5f7fbb3ca097310 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
6fe3d3bde9
commit
53d45de8a0
@@ -37,8 +37,10 @@
|
||||
#include <coreplugin/documentmanager.h>
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <projectexplorer/buildmanager.h>
|
||||
#include <projectexplorer/buildsteplist.h>
|
||||
#include <projectexplorer/kit.h>
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/projectmacroexpander.h>
|
||||
#include <projectexplorer/target.h>
|
||||
@@ -230,6 +232,28 @@ FileName CMakeBuildConfiguration::shadowBuildDirectory(const FileName &projectFi
|
||||
return FileName::fromUserInput(projectDir.absoluteFilePath(buildPath));
|
||||
}
|
||||
|
||||
void CMakeBuildConfiguration::buildTarget(const QString &buildTarget)
|
||||
{
|
||||
const Core::Id buildStep = ProjectExplorer::Constants::BUILDSTEPS_BUILD;
|
||||
const QString name = ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(buildStep);
|
||||
CMakeBuildStep *cmBs
|
||||
= qobject_cast<CMakeBuildStep *>(Utils::findOrDefault(stepList(buildStep)->steps(),
|
||||
[](const ProjectExplorer::BuildStep *bs) {
|
||||
return bs->id() == Constants::CMAKE_BUILD_STEP_ID;
|
||||
}));
|
||||
|
||||
QString originalBuildTarget;
|
||||
if (cmBs) {
|
||||
originalBuildTarget = cmBs->buildTarget();
|
||||
cmBs->setBuildTarget(buildTarget);
|
||||
}
|
||||
|
||||
BuildManager::buildList(stepList(buildStep), name);
|
||||
|
||||
if (cmBs)
|
||||
cmBs->setBuildTarget(originalBuildTarget);
|
||||
}
|
||||
|
||||
QList<ConfigModel::DataItem> CMakeBuildConfiguration::completeCMakeConfiguration() const
|
||||
{
|
||||
if (!m_buildDirManager || m_buildDirManager->isParsing())
|
||||
|
||||
Reference in New Issue
Block a user