aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/makestep.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/makestep.cpp')
-rw-r--r--src/plugins/projectexplorer/makestep.cpp45
1 files changed, 21 insertions, 24 deletions
diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp
index ed8a048e68..fef7acd52d 100644
--- a/src/plugins/projectexplorer/makestep.cpp
+++ b/src/plugins/projectexplorer/makestep.cpp
@@ -36,7 +36,6 @@
#include "target.h"
#include "toolchain.h"
-#include <coreplugin/id.h>
#include <coreplugin/variablechooser.h>
#include <utils/environment.h>
#include <utils/hostosinfo.h>
@@ -60,7 +59,7 @@ const char MAKEFLAGS[] = "MAKEFLAGS";
namespace ProjectExplorer {
-MakeStep::MakeStep(BuildStepList *parent, Core::Id id)
+MakeStep::MakeStep(BuildStepList *parent, Utils::Id id)
: AbstractProcessStep(parent, id),
m_userJobCount(defaultJobCount())
{
@@ -81,23 +80,19 @@ void MakeStep::setAvailableBuildTargets(const QStringList &buildTargets)
bool MakeStep::init()
{
- BuildConfiguration *bc = buildConfiguration();
- if (!bc)
- emit addTask(Task::buildConfigurationMissingTask());
-
const CommandLine make = effectiveMakeCommand(Execution);
if (make.executable().isEmpty())
emit addTask(makeCommandMissingTask());
- if (!bc || make.executable().isEmpty()) {
+ if (make.executable().isEmpty()) {
emitFaultyConfigurationMessage();
return false;
}
ProcessParameters *pp = processParameters();
- pp->setMacroExpander(bc->macroExpander());
- pp->setWorkingDirectory(bc->buildDirectory());
- pp->setEnvironment(environment(bc));
+ pp->setMacroExpander(macroExpander());
+ pp->setWorkingDirectory(buildDirectory());
+ pp->setEnvironment(buildEnvironment());
pp->setCommandLine(make);
pp->resolveAll();
@@ -106,15 +101,17 @@ bool MakeStep::init()
// That is mostly so that rebuild works on an already clean project
setIgnoreReturnValue(isClean());
- setOutputParser(new GnuMakeParser());
- IOutputParser *parser = target()->kit()->createOutputParser();
- if (parser)
- appendOutputParser(parser);
- outputParser()->setWorkingDirectory(pp->effectiveWorkingDirectory().toString());
-
return AbstractProcessStep::init();
}
+void MakeStep::setupOutputFormatter(OutputFormatter *formatter)
+{
+ formatter->addLineParser(new GnuMakeParser());
+ formatter->addLineParsers(target()->kit()->createOutputParsers());
+ formatter->addSearchDir(processParameters()->effectiveWorkingDirectory());
+ AbstractProcessStep::setupOutputFormatter(formatter);
+}
+
void MakeStep::setClean(bool clean)
{
m_clean = clean;
@@ -153,7 +150,7 @@ FilePath MakeStep::defaultMakeCommand() const
BuildConfiguration *bc = buildConfiguration();
if (!bc)
return {};
- const Utils::Environment env = environment(bc);
+ const Utils::Environment env = makeEnvironment();
for (const ToolChain *tc : preferredToolChains(target()->kit())) {
FilePath make = tc->makeCommand(env);
if (!make.isEmpty())
@@ -225,7 +222,7 @@ static Utils::optional<int> argsJobCount(const QString &str)
bool MakeStep::makeflagsJobCountMismatch() const
{
- const Utils::Environment env = environment(buildConfiguration());
+ const Environment env = makeEnvironment();
if (!env.hasKey(MAKEFLAGS))
return false;
Utils::optional<int> makeFlagsJobCount = argsJobCount(env.expandedValueForKey(MAKEFLAGS));
@@ -234,7 +231,7 @@ bool MakeStep::makeflagsJobCountMismatch() const
bool MakeStep::makeflagsContainsJobCount() const
{
- const Utils::Environment env = environment(buildConfiguration());
+ const Environment env = makeEnvironment();
if (!env.hasKey(MAKEFLAGS))
return false;
return argsJobCount(env.expandedValueForKey(MAKEFLAGS)).has_value();
@@ -245,9 +242,9 @@ bool MakeStep::userArgsContainsJobCount() const
return argsJobCount(m_userArguments).has_value();
}
-Utils::Environment MakeStep::environment(BuildConfiguration *bc) const
+Environment MakeStep::makeEnvironment() const
{
- Utils::Environment env = bc ? bc->environment() : Utils::Environment::systemEnvironment();
+ Environment env = buildEnvironment();
Utils::Environment::setupEnglishOutput(&env);
if (makeCommand().isEmpty()) {
// We also prepend "L" to the MAKEFLAGS, so that nmake / jom are less verbose
@@ -494,10 +491,10 @@ void MakeStepConfigWidget::updateDetails()
m_ui->disableInSubDirsCheckBox->setChecked(!m_makeStep->enabledForSubDirs());
ProcessParameters param;
- param.setMacroExpander(bc->macroExpander());
- param.setWorkingDirectory(bc->buildDirectory());
+ param.setMacroExpander(m_makeStep->macroExpander());
+ param.setWorkingDirectory(m_makeStep->buildDirectory());
param.setCommandLine(make);
- param.setEnvironment(m_makeStep->environment(bc));
+ param.setEnvironment(m_makeStep->buildEnvironment());
if (param.commandMissing())
setSummaryText(tr("<b>Make:</b> %1 not found in the environment.")