aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qbsprojectmanager/qbsbuildstep.cpp')
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.cpp49
1 files changed, 17 insertions, 32 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
index 239276de77..062f48e15b 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
@@ -26,7 +26,6 @@
#include "qbsbuildstep.h"
#include "qbsbuildconfiguration.h"
-#include "qbsparser.h"
#include "qbsproject.h"
#include "qbsprojectmanagerconstants.h"
#include "qbssession.h"
@@ -40,6 +39,7 @@
#include <projectexplorer/target.h>
#include <qtsupport/qtversionmanager.h>
#include <utils/macroexpander.h>
+#include <utils/outputformatter.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
@@ -60,7 +60,6 @@
// --------------------------------------------------------------------
const char QBS_CONFIG[] = "Qbs.Configuration";
-const char QBS_DRY_RUN[] = "Qbs.DryRun";
const char QBS_KEEP_GOING[] = "Qbs.DryKeepGoing";
const char QBS_MAXJOBCOUNT[] = "Qbs.MaxJobs";
const char QBS_SHOWCOMMANDLINES[] = "Qbs.ShowCommandLines";
@@ -156,7 +155,6 @@ QbsBuildStep::~QbsBuildStep()
doCancel();
if (m_session)
m_session->disconnect(this);
- delete m_parser;
}
bool QbsBuildStep::init()
@@ -169,25 +167,19 @@ bool QbsBuildStep::init()
if (!bc)
return false;
- delete m_parser;
- m_parser = new Internal::QbsParser;
- ProjectExplorer::IOutputParser *parser = target()->kit()->createOutputParser();
- if (parser)
- m_parser->appendOutputParser(parser);
-
m_changedFiles = bc->changedFiles();
m_activeFileTags = bc->activeFileTags();
m_products = bc->products();
- connect(m_parser, &ProjectExplorer::IOutputParser::addOutput,
- this, [this](const QString &string, ProjectExplorer::BuildStep::OutputFormat format) {
- emit addOutput(string, format);
- });
- connect(m_parser, &ProjectExplorer::IOutputParser::addTask, this, &QbsBuildStep::addTask);
-
return true;
}
+void QbsBuildStep::setupOutputFormatter(OutputFormatter *formatter)
+{
+ formatter->addLineParsers(target()->kit()->createOutputParsers());
+ BuildStep::setupOutputFormatter(formatter);
+}
+
void QbsBuildStep::doRun()
{
// We need a pre-build parsing step in order not to lose project file changes done
@@ -234,7 +226,7 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co
Constants::QBS_CONFIG_QUICK_COMPILER_KEY);
if (variableHandling == ExpandVariables) {
- const MacroExpander * const expander = buildConfiguration()->macroExpander();
+ const MacroExpander * const expander = macroExpander();
for (auto it = config.begin(), end = config.end(); it != end; ++it) {
const QString rawString = it.value().toString();
const QString expandedString = expander->expand(rawString);
@@ -273,7 +265,7 @@ Utils::FilePath QbsBuildStep::installRoot(VariableHandling variableHandling) con
return Utils::FilePath::fromString(root);
QString defaultInstallDir = QbsSettings::defaultInstallDirTemplate();
if (variableHandling == VariableHandling::ExpandVariables)
- defaultInstallDir = buildConfiguration()->macroExpander()->expand(defaultInstallDir);
+ defaultInstallDir = macroExpander()->expand(defaultInstallDir);
return FilePath::fromString(defaultInstallDir);
}
@@ -379,29 +371,24 @@ void QbsBuildStep::handleProcessResult(
const QStringList &stdErr,
bool success)
{
+ Q_UNUSED(workingDir);
const bool hasOutput = !stdOut.isEmpty() || !stdErr.isEmpty();
if (success && !hasOutput)
return;
- m_parser->setWorkingDirectory(workingDir.toString());
emit addOutput(executable.toUserOutput() + ' ' + QtcProcess::joinArgs(arguments),
OutputFormat::Stdout);
- for (const QString &line : stdErr) {
- m_parser->stdError(line);
+ for (const QString &line : stdErr)
emit addOutput(line, OutputFormat::Stderr);
- }
- for (const QString &line : stdOut) {
- m_parser->stdOutput(line);
+ for (const QString &line : stdOut)
emit addOutput(line, OutputFormat::Stdout);
- }
- m_parser->flush();
}
void QbsBuildStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type, const QString &message,
const QString &file, int line)
{
- emit addTask(CompileTask(type, message, FilePath::fromString(file), line), 1);
emit addOutput(message, OutputFormat::Stdout);
+ emit addTask(CompileTask(type, message, FilePath::fromString(file), line), 1);
}
QString QbsBuildStep::buildVariant() const
@@ -411,7 +398,7 @@ QString QbsBuildStep::buildVariant() const
QbsBuildSystem *QbsBuildStep::qbsBuildSystem() const
{
- return static_cast<QbsBuildSystem *>(buildConfiguration()->buildSystem());
+ return static_cast<QbsBuildSystem *>(buildSystem());
}
void QbsBuildStep::setBuildVariant(const QString &variant)
@@ -653,9 +640,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
auto chooser = new Core::VariableChooser(this);
chooser->addSupportedWidget(propertyEdit);
chooser->addSupportedWidget(installDirChooser->lineEdit());
- chooser->addMacroExpanderProvider([step] {
- return step->buildConfiguration()->macroExpander();
- });
+ chooser->addMacroExpanderProvider([step] { return step->macroExpander(); });
propertyEdit->setValidationFunction([this](FancyLineEdit *edit, QString *errorMessage) {
return validateProperties(edit, errorMessage);
});
@@ -693,7 +678,7 @@ void QbsBuildStepConfigWidget::updateState()
cleanInstallRootCheckBox->setChecked(qbsStep()->cleanInstallRoot());
forceProbesCheckBox->setChecked(qbsStep()->forceProbes());
updatePropertyEdit(qbsStep()->qbsConfiguration(QbsBuildStep::PreserveVariables));
- installDirChooser->setFileName(qbsStep()->installRoot(QbsBuildStep::PreserveVariables));
+ installDirChooser->setFilePath(qbsStep()->installRoot(QbsBuildStep::PreserveVariables));
defaultInstallDirCheckBox->setChecked(!qbsStep()->hasCustomInstallRoot());
}
@@ -876,7 +861,7 @@ bool QbsBuildStepConfigWidget::validateProperties(Utils::FancyLineEdit *edit, QS
}
QList<Property> properties;
- const MacroExpander * const expander = step()->buildConfiguration()->macroExpander();
+ const MacroExpander * const expander = step()->macroExpander();
foreach (const QString &rawArg, argList) {
int pos = rawArg.indexOf(':');
if (pos > 0) {