forked from qt-creator/qt-creator
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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user