ProjectExplorer: Prefer ProcessParameters::setCommandLine

... over setting command and args individually.

Change-Id: Iec7c8d3a0b05fb8fa0639f7ddbe7ccdc7387d2a2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-06-21 08:31:37 +02:00
parent 0d49c2cd2c
commit 3170601b4d
20 changed files with 122 additions and 162 deletions

View File

@@ -206,7 +206,6 @@ void NimCompilerBuildStep::updateProcessParameters()
{
updateOutFilePath();
updateCommand();
updateArguments();
updateWorkingDirectory();
updateEnvironment();
emit processParametersChanged();
@@ -220,16 +219,6 @@ void NimCompilerBuildStep::updateOutFilePath()
setOutFilePath(bc->buildDirectory().pathAppended(targetName));
}
void NimCompilerBuildStep::updateCommand()
{
QTC_ASSERT(target(), return);
QTC_ASSERT(target()->kit(), return);
Kit *kit = target()->kit();
auto tc = dynamic_cast<NimToolChain*>(ToolChainKitAspect::toolChain(kit, Constants::C_NIMLANGUAGE_ID));
QTC_ASSERT(tc, return);
processParameters()->setCommand(tc->compilerCommand());
}
void NimCompilerBuildStep::updateWorkingDirectory()
{
auto bc = qobject_cast<NimBuildConfiguration *>(buildConfiguration());
@@ -237,38 +226,38 @@ void NimCompilerBuildStep::updateWorkingDirectory()
processParameters()->setWorkingDirectory(bc->buildDirectory());
}
void NimCompilerBuildStep::updateArguments()
void NimCompilerBuildStep::updateCommand()
{
auto bc = qobject_cast<NimBuildConfiguration *>(buildConfiguration());
QTC_ASSERT(bc, return);
QStringList arguments;
arguments << QStringLiteral("c");
QTC_ASSERT(target(), return);
QTC_ASSERT(target()->kit(), return);
Kit *kit = target()->kit();
auto tc = dynamic_cast<NimToolChain*>(ToolChainKitAspect::toolChain(kit, Constants::C_NIMLANGUAGE_ID));
QTC_ASSERT(tc, return);
switch (m_defaultOptions) {
case Release:
arguments << QStringLiteral("-d:release");
break;
case Debug:
arguments << QStringLiteral("--debugInfo")
<< QStringLiteral("--lineDir:on");
break;
default:
break;
CommandLine cmd{tc->compilerCommand()};
cmd.addArg("c");
if (m_defaultOptions == Release)
cmd.addArg("-d:release");
else if (m_defaultOptions == Debug)
cmd.addArgs({"--debugInfo", "--lineDir:on"});
cmd.addArg("--out:" + m_outFilePath.toString());
cmd.addArg("--nimCache:" + bc->cacheDirectory().toString());
for (const QString &arg : m_userCompilerOptions) {
if (!arg.isEmpty())
cmd.addArg(arg);
}
arguments << QStringLiteral("--out:%1").arg(m_outFilePath.toString());
arguments << QStringLiteral("--nimCache:%1").arg(bc->cacheDirectory().toString());
if (!m_targetNimFile.isEmpty())
cmd.addArg(m_targetNimFile.toString());
arguments << m_userCompilerOptions;
arguments << m_targetNimFile.toString();
// Remove empty args
auto predicate = [](const QString &str) { return str.isEmpty(); };
auto it = std::remove_if(arguments.begin(), arguments.end(), predicate);
arguments.erase(it, arguments.end());
processParameters()->setArguments(arguments.join(QChar::Space));
processParameters()->setCommandLine(cmd);
}
void NimCompilerBuildStep::updateEnvironment()