From 5ddd83247c47b50d27c533c6060c17a4f3d26849 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 28 Aug 2020 10:38:20 +0200 Subject: [PATCH] Incredibuild: Fix handling of build commands The default command is supposed to be a placeholder not an entry done by the user. Allow entering an empty string again to rely on the default. As on it fix place holders inside strings. Amends e04b9a5348c. Change-Id: I111c843d9620ecc8cf5a7a3c63ca7ac92e588e0c Reviewed-by: hjk Reviewed-by: Oliver Wolff --- src/plugins/incredibuild/buildconsolebuildstep.cpp | 2 +- src/plugins/incredibuild/commandbuilder.cpp | 5 +---- src/plugins/incredibuild/commandbuilder.h | 3 ++- src/plugins/incredibuild/commandbuilderaspect.cpp | 6 +++--- src/plugins/incredibuild/ibconsolebuildstep.cpp | 2 +- src/plugins/incredibuild/makecommandbuilder.cpp | 2 +- 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/plugins/incredibuild/buildconsolebuildstep.cpp b/src/plugins/incredibuild/buildconsolebuildstep.cpp index cfb92b3f5b6..37d2c075841 100644 --- a/src/plugins/incredibuild/buildconsolebuildstep.cpp +++ b/src/plugins/incredibuild/buildconsolebuildstep.cpp @@ -280,7 +280,7 @@ BuildConsoleBuildStep::BuildConsoleBuildStep(BuildStepList *buildStepList, Id id setCommandLineProvider([=] { QStringList args; - QString cmd("/Command= %0"); + QString cmd("/Command= %1"); cmd = cmd.arg(commandBuilder->fullCommandFlag(keepJobNum->value())); args.append(cmd); diff --git a/src/plugins/incredibuild/commandbuilder.cpp b/src/plugins/incredibuild/commandbuilder.cpp index b290afdea78..4e46ab8d009 100644 --- a/src/plugins/incredibuild/commandbuilder.cpp +++ b/src/plugins/incredibuild/commandbuilder.cpp @@ -48,10 +48,7 @@ void CommandBuilder::toMap(QVariantMap *map) const void CommandBuilder::setCommand(const QString &command) { - if (command == defaultCommand()) - m_command.clear(); - else - m_command = command; + m_command = command; } void CommandBuilder::setArguments(const QString &arguments) diff --git a/src/plugins/incredibuild/commandbuilder.h b/src/plugins/incredibuild/commandbuilder.h index 82fa72df56a..2e8df6af612 100644 --- a/src/plugins/incredibuild/commandbuilder.h +++ b/src/plugins/incredibuild/commandbuilder.h @@ -54,8 +54,9 @@ public: virtual QString defaultArguments() const { return QString(); } virtual QString setMultiProcessArg(QString args) { return args; } - QString command() { return m_command.isEmpty() ? defaultCommand() : m_command; } + QString command() const { return m_command; } void setCommand(const QString &command); + QString effectiveCommand() const { return m_command.isEmpty() ? defaultCommand() : m_command; } QString arguments() { return m_args.isEmpty() ? defaultArguments() : m_args; } void setArguments(const QString &arguments); diff --git a/src/plugins/incredibuild/commandbuilderaspect.cpp b/src/plugins/incredibuild/commandbuilderaspect.cpp index 14477f1e79a..be5272ed75f 100644 --- a/src/plugins/incredibuild/commandbuilderaspect.cpp +++ b/src/plugins/incredibuild/commandbuilderaspect.cpp @@ -99,8 +99,8 @@ QString CommandBuilderAspect::fullCommandFlag(bool keepJobNum) const if (!keepJobNum) argsLine = d->m_activeCommandBuilder->setMultiProcessArg(argsLine); - QString fullCommand("\"%0\" %1"); - fullCommand = fullCommand.arg(d->m_activeCommandBuilder->command(), argsLine); + QString fullCommand("\"%1\" %2"); + fullCommand = fullCommand.arg(d->m_activeCommandBuilder->effectiveCommand(), argsLine); return fullCommand; } @@ -212,8 +212,8 @@ void CommandBuilderAspect::updateGui() d->commandBuilder->setCurrentText(d->m_activeCommandBuilder->displayName()); const QString defaultCommand = d->m_activeCommandBuilder->defaultCommand(); - d->makePathChooser->lineEdit()->setPlaceholderText(defaultCommand); d->makePathChooser->setPath(d->m_activeCommandBuilder->command()); + d->makePathChooser->setDefaultValue(defaultCommand); const QString defaultArgs = d->m_activeCommandBuilder->defaultArguments(); d->makeArgumentsLineEdit->setPlaceholderText(defaultArgs); diff --git a/src/plugins/incredibuild/ibconsolebuildstep.cpp b/src/plugins/incredibuild/ibconsolebuildstep.cpp index cdf6ea1e982..18178e07d56 100644 --- a/src/plugins/incredibuild/ibconsolebuildstep.cpp +++ b/src/plugins/incredibuild/ibconsolebuildstep.cpp @@ -106,7 +106,7 @@ IBConsoleBuildStep::IBConsoleBuildStep(BuildStepList *buildStepList, Id id) QStringList args; if (nice->value() != 0) - args.append(QString("--nice %0 ").arg(nice->value())); + args.append(QString("--nice %1 ").arg(nice->value())); if (alternate->value()) args.append("--alternate"); diff --git a/src/plugins/incredibuild/makecommandbuilder.cpp b/src/plugins/incredibuild/makecommandbuilder.cpp index 5f0897054d6..a758b4949df 100644 --- a/src/plugins/incredibuild/makecommandbuilder.cpp +++ b/src/plugins/incredibuild/makecommandbuilder.cpp @@ -58,7 +58,7 @@ QString MakeCommandBuilder::defaultCommand() const if (target) { ToolChain *toolChain = ToolChainKitAspect::toolChain(target->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID); if (toolChain) - return toolChain->makeCommand(buildConfig->environment()).toString(); + return toolChain->makeCommand(buildConfig->environment()).toUserOutput(); } }