CMake: Use Utils::CommandLine for CMakeBuildStep

Change-Id: I0490b1edf073c680f24ad7de10b544443ae62c5e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-29 18:54:45 +02:00
parent 884665a0fe
commit fa38a31644
3 changed files with 18 additions and 26 deletions

View File

@@ -205,8 +205,6 @@ bool CMakeBuildStep::init()
} }
} }
QString arguments = allArguments(rc);
setIgnoreReturnValue(m_buildTarget == CMakeBuildStep::cleanTarget()); setIgnoreReturnValue(m_buildTarget == CMakeBuildStep::cleanTarget());
ProcessParameters *pp = processParameters(); ProcessParameters *pp = processParameters();
@@ -217,8 +215,7 @@ bool CMakeBuildStep::init()
env.set("NINJA_STATUS", m_ninjaProgressString + "%o/sec] "); env.set("NINJA_STATUS", m_ninjaProgressString + "%o/sec] ");
pp->setEnvironment(env); pp->setEnvironment(env);
pp->setWorkingDirectory(bc->buildDirectory()); pp->setWorkingDirectory(bc->buildDirectory());
pp->setCommand(cmakeCommand()); pp->setCommandLine(cmakeCommand(rc));
pp->setArguments(arguments);
pp->resolveAll(); pp->resolveAll();
setOutputParser(new CMakeParser); setOutputParser(new CMakeParser);
@@ -342,12 +339,12 @@ void CMakeBuildStep::setToolArguments(const QString &list)
m_toolArguments = list; m_toolArguments = list;
} }
QString CMakeBuildStep::allArguments(const CMakeRunConfiguration *rc) const Utils::CommandLine CMakeBuildStep::cmakeCommand(CMakeRunConfiguration *rc) const
{ {
QString arguments; CMakeTool *tool = CMakeKitAspect::cmakeTool(target()->kit());
Utils::QtcProcess::addArg(&arguments, "--build"); Utils::CommandLine cmd(tool ? tool->cmakeExecutable() : Utils::FilePath(), {});
Utils::QtcProcess::addArg(&arguments, "."); cmd.addArgs({"--build", "."});
QString target; QString target;
@@ -360,21 +357,14 @@ QString CMakeBuildStep::allArguments(const CMakeRunConfiguration *rc) const
target = m_buildTarget; target = m_buildTarget;
} }
Utils::QtcProcess::addArg(&arguments, "--target"); cmd.addArgs({"--target", target});
Utils::QtcProcess::addArg(&arguments, target);
if (!m_toolArguments.isEmpty()) { if (!m_toolArguments.isEmpty()) {
Utils::QtcProcess::addArg(&arguments, "--"); cmd.addArg("--");
arguments += ' ' + m_toolArguments; cmd.addArgs(m_toolArguments);
} }
return arguments; return cmd;
}
Utils::FilePath CMakeBuildStep::cmakeCommand() const
{
CMakeTool *tool = CMakeKitAspect::cmakeTool(target()->kit());
return tool ? tool->cmakeExecutable() : Utils::FilePath();
} }
QString CMakeBuildStep::cleanTarget() QString CMakeBuildStep::cleanTarget()
@@ -530,8 +520,7 @@ void CMakeBuildStepConfigWidget::updateDetails()
param.setMacroExpander(bc->macroExpander()); param.setMacroExpander(bc->macroExpander());
param.setEnvironment(bc->environment()); param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->buildDirectory()); param.setWorkingDirectory(bc->buildDirectory());
param.setCommand(m_buildStep->cmakeCommand()); param.setCommandLine(m_buildStep->cmakeCommand(nullptr));
param.setArguments(m_buildStep->allArguments(nullptr));
setSummaryText(param.summary(displayName())); setSummaryText(param.summary(displayName()));
} }

View File

@@ -35,7 +35,10 @@ class QListWidget;
class QListWidgetItem; class QListWidgetItem;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Utils { class PathChooser; } namespace Utils {
class CommandLine;
class PathChooser;
} // Utils
namespace ProjectExplorer { class ToolChain; } namespace ProjectExplorer { class ToolChain; }
@@ -64,9 +67,7 @@ public:
QString toolArguments() const; QString toolArguments() const;
void setToolArguments(const QString &list); void setToolArguments(const QString &list);
QString allArguments(const CMakeRunConfiguration *rc) const; Utils::CommandLine cmakeCommand(CMakeRunConfiguration *rc) const;
Utils::FilePath cmakeCommand() const;
QVariantMap toMap() const override; QVariantMap toMap() const override;

View File

@@ -54,6 +54,7 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/stringutils.h> #include <utils/stringutils.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
@@ -635,7 +636,8 @@ MakeInstallCommand CMakeProject::makeInstallCommand(const Target *target,
if (const BuildConfiguration * const bc = target->activeBuildConfiguration()) { if (const BuildConfiguration * const bc = target->activeBuildConfiguration()) {
if (const auto cmakeStep = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD) if (const auto cmakeStep = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD)
->firstOfType<CMakeBuildStep>()) { ->firstOfType<CMakeBuildStep>()) {
cmd.command = cmakeStep->cmakeCommand(); if (CMakeTool *tool = CMakeKitAspect::cmakeTool(target->kit()))
cmd.command = tool->cmakeExecutable();
} }
} }
cmd.arguments << "--build" << "." << "--target" << "install"; cmd.arguments << "--build" << "." << "--target" << "install";