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

View File

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

View File

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