From efecd15b1e8e325fd26abfa3e03f3d64437cc6c1 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 3 Apr 2014 17:02:21 +0200 Subject: [PATCH] BuildSteps: emitting tasks from init() works fine Change-Id: Ida5c7e9eea197d12ebe6e4bd86e90b2ef7e7a100 Reviewed-by: Tobias Hunger --- .../autotoolsprojectmanager/makestep.cpp | 23 +++----------- .../autotoolsprojectmanager/makestep.h | 1 - .../genericprojectmanager/genericmakestep.cpp | 18 ++--------- .../genericprojectmanager/genericmakestep.h | 1 - src/plugins/ios/iosbuildstep.cpp | 17 ++-------- src/plugins/ios/iosbuildstep.h | 1 - src/plugins/qmakeprojectmanager/makestep.cpp | 22 +++---------- src/plugins/qmakeprojectmanager/makestep.h | 1 - src/plugins/qmakeprojectmanager/qmakestep.cpp | 31 +++++++++---------- src/plugins/qmakeprojectmanager/qmakestep.h | 1 - 10 files changed, 30 insertions(+), 86 deletions(-) diff --git a/src/plugins/autotoolsprojectmanager/makestep.cpp b/src/plugins/autotoolsprojectmanager/makestep.cpp index 585e406c80b..f9384bda2ba 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.cpp +++ b/src/plugins/autotoolsprojectmanager/makestep.cpp @@ -165,13 +165,13 @@ bool MakeStep::init() if (!bc) bc = target()->activeBuildConfiguration(); - m_tasks.clear(); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); if (!tc) { - m_tasks.append(Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit options."), - Utils::FileName(), -1, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - return true; // otherwise the tasks will not get reported + emit addTask(Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit options."), + Utils::FileName(), -1, + Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); + emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); + return false; } QString arguments = Utils::QtcProcess::joinArgs(m_buildTargets); @@ -202,19 +202,6 @@ bool MakeStep::init() void MakeStep::run(QFutureInterface &interface) { - // Warn on common error conditions: - bool canContinue = true; - foreach (const Task &t, m_tasks) { - addTask(t); - canContinue = false; - } - if (!canContinue) { - emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); - interface.reportResult(false); - emit finished(); - return; - } - AbstractProcessStep::run(interface); } diff --git a/src/plugins/autotoolsprojectmanager/makestep.h b/src/plugins/autotoolsprojectmanager/makestep.h index 15cf1bfc859..2fae1fff69e 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.h +++ b/src/plugins/autotoolsprojectmanager/makestep.h @@ -120,7 +120,6 @@ private: QStringList m_buildTargets; QString m_additionalArguments; bool m_clean; - QList m_tasks; }; /////////////////////////////// diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index c21a725fe67..77171b26761 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -104,13 +104,13 @@ bool GenericMakeStep::init() if (!bc) bc = target()->activeBuildConfiguration(); - m_tasks.clear(); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); if (!tc) { - m_tasks.append(Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit options."), + emit addTask(Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit options."), Utils::FileName(), -1, Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - return true; // otherwise the tasks will not get reported + emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); + return false; } ProcessParameters *pp = processParameters(); @@ -192,18 +192,6 @@ QString GenericMakeStep::makeCommand(const Utils::Environment &environment) cons void GenericMakeStep::run(QFutureInterface &fi) { - bool canContinue = true; - foreach (const Task &t, m_tasks) { - addTask(t); - canContinue = false; - } - if (!canContinue) { - emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); - fi.reportResult(false); - emit finished(); - return; - } - AbstractProcessStep::run(fi); } diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h index f30de3b10dc..4e7b0e3e749 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.h +++ b/src/plugins/genericprojectmanager/genericmakestep.h @@ -81,7 +81,6 @@ private: QString m_makeArguments; QString m_makeCommand; bool m_clean; - QList m_tasks; }; class GenericMakeStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget diff --git a/src/plugins/ios/iosbuildstep.cpp b/src/plugins/ios/iosbuildstep.cpp index a0818d6a5a2..f2eb1e10320 100644 --- a/src/plugins/ios/iosbuildstep.cpp +++ b/src/plugins/ios/iosbuildstep.cpp @@ -111,14 +111,14 @@ bool IosBuildStep::init() if (!bc) bc = target()->activeBuildConfiguration(); - m_tasks.clear(); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); if (!tc) { Task t = Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit preferences."), Utils::FileName(), -1, Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - m_tasks.append(t); emit addTask(t); + emit addOutput(tr("Configuration is faulty. Check the Issues output pane for details."), + BuildStep::MessageOutput); return false; } ProcessParameters *pp = processParameters(); @@ -217,19 +217,6 @@ QString IosBuildStep::buildCommand() const void IosBuildStep::run(QFutureInterface &fi) { - bool canContinue = true; - foreach (const Task &t, m_tasks) { - addTask(t); - canContinue = false; - } - if (!canContinue) { - emit addOutput(tr("Configuration is faulty. Check the Issues output pane for details."), - BuildStep::MessageOutput); - fi.reportResult(false); - emit finished(); - return; - } - AbstractProcessStep::run(fi); } diff --git a/src/plugins/ios/iosbuildstep.h b/src/plugins/ios/iosbuildstep.h index 4811d8a0b3b..f0015abd6ad 100644 --- a/src/plugins/ios/iosbuildstep.h +++ b/src/plugins/ios/iosbuildstep.h @@ -83,7 +83,6 @@ private: QString m_buildCommand; bool m_useDefaultArguments; bool m_clean; - QList m_tasks; }; class IosBuildStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget diff --git a/src/plugins/qmakeprojectmanager/makestep.cpp b/src/plugins/qmakeprojectmanager/makestep.cpp index d1b39bf2ed0..80198dfbd38 100644 --- a/src/plugins/qmakeprojectmanager/makestep.cpp +++ b/src/plugins/qmakeprojectmanager/makestep.cpp @@ -157,13 +157,13 @@ bool MakeStep::init() if (!bc) bc = qobject_cast(target()->activeBuildConfiguration()); - m_tasks.clear(); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); if (!tc) { - m_tasks.append(Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit options."), - Utils::FileName(), -1, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - return true; // otherwise the tasks will not get reported + emit addTask(Task(Task::Error, tr("Qt Creator needs a compiler set up to build. Configure a compiler in the kit options."), + Utils::FileName(), -1, + Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); + emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); + return false; } ProcessParameters *pp = processParameters(); @@ -269,18 +269,6 @@ bool MakeStep::init() void MakeStep::run(QFutureInterface & fi) { - bool canContinue = true; - foreach (const Task &t, m_tasks) { - addTask(t); - canContinue = false; - } - if (!canContinue) { - emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); - fi.reportResult(false); - emit finished(); - return; - } - if (m_scriptTarget) { fi.reportResult(true); emit finished(); diff --git a/src/plugins/qmakeprojectmanager/makestep.h b/src/plugins/qmakeprojectmanager/makestep.h index 9dab8d10c3d..1b68a7e9cd9 100644 --- a/src/plugins/qmakeprojectmanager/makestep.h +++ b/src/plugins/qmakeprojectmanager/makestep.h @@ -113,7 +113,6 @@ private: QString m_makeFileToCheck; QString m_userArgs; QString m_makeCmd; - QList m_tasks; }; class MakeStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index cd547885e84..dba95dc60e4 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -274,8 +274,21 @@ bool QMakeStep::init() node = qt4bc->subNodeBuild(); QString proFile = node->path(); - m_tasks = qtVersion->reportIssues(proFile, workingDirectory); - qSort(m_tasks); + QList tasks = qtVersion->reportIssues(proFile, workingDirectory); + qSort(tasks); + + if (!tasks.isEmpty()) { + bool canContinue = true; + foreach (const ProjectExplorer::Task &t, tasks) { + addTask(t); + if (t.type == Task::Error) + canContinue = false; + } + if (!canContinue) { + emit addOutput(tr("Configuration is faulty, please check the Issues view for details."), BuildStep::MessageOutput); + return false; + } + } m_scriptTemplate = node->projectType() == ScriptTemplate; @@ -289,20 +302,6 @@ void QMakeStep::run(QFutureInterface &fi) return; } - // Warn on common error conditions: - bool canContinue = true; - foreach (const ProjectExplorer::Task &t, m_tasks) { - addTask(t); - if (t.type == Task::Error) - canContinue = false; - } - if (!canContinue) { - emit addOutput(tr("Configuration is faulty, please check the Issues view for details."), BuildStep::MessageOutput); - fi.reportResult(false); - emit finished(); - return; - } - if (!m_needToRunQMake) { emit addOutput(tr("Configuration unchanged, skipping qmake step."), BuildStep::MessageOutput); fi.reportResult(true); diff --git a/src/plugins/qmakeprojectmanager/qmakestep.h b/src/plugins/qmakeprojectmanager/qmakestep.h index f0e5dd1ca90..e382ba234bd 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.h +++ b/src/plugins/qmakeprojectmanager/qmakestep.h @@ -135,7 +135,6 @@ private: QString m_userArgs; QmlLibraryLink m_linkQmlDebuggingLibrary; bool m_scriptTemplate; - QList m_tasks; };