From 4eb2908c44033f884b82560360440ebb3269af63 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 20 Jun 2014 14:32:40 +0200 Subject: [PATCH] Unify "missing compiler" and "missing build configuration" tasks Everybody used to do their own thing... Also unify the "Configuration is faulty" message we write into the Application output window. Change-Id: I0e5c4ec68155d66aa1d0ea53134b98917869e5c6 Reviewed-by: Tobias Hunger --- .../autotoolsprojectmanager/makestep.cpp | 12 +++++----- src/plugins/cmakeprojectmanager/makestep.cpp | 16 +++++--------- .../genericprojectmanager/genericmakestep.cpp | 12 +++++----- src/plugins/ios/iosbuildstep.cpp | 15 +++++++------ .../projectexplorer/abstractprocessstep.cpp | 6 +++++ .../projectexplorer/abstractprocessstep.h | 3 +++ src/plugins/projectexplorer/task.cpp | 22 +++++++++++++++++++ src/plugins/projectexplorer/task.h | 4 ++++ src/plugins/qmakeprojectmanager/makestep.cpp | 12 +++++----- src/plugins/qmakeprojectmanager/qmakestep.cpp | 2 +- 10 files changed, 70 insertions(+), 34 deletions(-) diff --git a/src/plugins/autotoolsprojectmanager/makestep.cpp b/src/plugins/autotoolsprojectmanager/makestep.cpp index f9384bda2ba..04a58886647 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.cpp +++ b/src/plugins/autotoolsprojectmanager/makestep.cpp @@ -164,13 +164,15 @@ bool MakeStep::init() BuildConfiguration *bc = buildConfiguration(); if (!bc) bc = target()->activeBuildConfiguration(); + if (!bc) + emit addTask(Task::buildConfigurationMissingTask()); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); - if (!tc) { - 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); + if (!tc) + emit addTask(Task::compilerMissingTask()); + + if (!tc || !bc) { + emitFaultyConfigurationMessage(); return false; } diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index 60d3570c479..afd387cacea 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -177,21 +177,15 @@ bool MakeStep::init() if (!bc) bc = targetsActiveBuildConfiguration(); - if (!bc) { - emit addTask(Task(Task::Error, tr("Qt Creator needs a build configuration set up to build. Configure a build configuration in the project settings."), - Utils::FileName(), -1, - ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - } + if (!bc) + emit addTask(Task::buildConfigurationMissingTask()); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); - if (!tc) { - 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, - ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - } + if (!tc) + emit addTask(Task::compilerMissingTask()); if (!bc || !tc) { - emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); + emitFaultyConfigurationMessage(); return false; } diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index 77171b26761..0f5c5f99822 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -103,13 +103,15 @@ bool GenericMakeStep::init() BuildConfiguration *bc = buildConfiguration(); if (!bc) bc = target()->activeBuildConfiguration(); + if (!bc) + emit addTask(Task::buildConfigurationMissingTask()); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); - if (!tc) { - 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); + if (!tc) + emit addTask(Task::compilerMissingTask()); + + if (!bc || !tc) { + emitFaultyConfigurationMessage(); return false; } diff --git a/src/plugins/ios/iosbuildstep.cpp b/src/plugins/ios/iosbuildstep.cpp index f2eb1e10320..529c097798b 100644 --- a/src/plugins/ios/iosbuildstep.cpp +++ b/src/plugins/ios/iosbuildstep.cpp @@ -110,17 +110,18 @@ bool IosBuildStep::init() BuildConfiguration *bc = buildConfiguration(); if (!bc) bc = target()->activeBuildConfiguration(); + if (!bc) + emit addTask(Task::buildConfigurationMissingTask()); 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)); - emit addTask(t); - emit addOutput(tr("Configuration is faulty. Check the Issues output pane for details."), - BuildStep::MessageOutput); + if (!tc) + emit addTask(Task::compilerMissingTask()); + + if (!bc || !tc) { + emitFaultyConfigurationMessage(); return false; } + ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); pp->setWorkingDirectory(bc->buildDirectory().toString()); diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp index 67ed641ab66..d97e598f9c9 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.cpp +++ b/src/plugins/projectexplorer/abstractprocessstep.cpp @@ -149,6 +149,12 @@ ProjectExplorer::IOutputParser *AbstractProcessStep::outputParser() const return m_outputParserChain; } +void AbstractProcessStep::emitFaultyConfigurationMessage() +{ + emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), + BuildStep::MessageOutput); +} + bool AbstractProcessStep::ignoreReturnValue() { return m_ignoreReturnValue; diff --git a/src/plugins/projectexplorer/abstractprocessstep.h b/src/plugins/projectexplorer/abstractprocessstep.h index 25db1d6982c..26ad21cbe32 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.h +++ b/src/plugins/projectexplorer/abstractprocessstep.h @@ -65,6 +65,9 @@ public: void setOutputParser(ProjectExplorer::IOutputParser *parser); void appendOutputParser(ProjectExplorer::IOutputParser *parser); ProjectExplorer::IOutputParser *outputParser() const; + + void emitFaultyConfigurationMessage(); + protected: AbstractProcessStep(BuildStepList *bsl, const Core::Id id); AbstractProcessStep(BuildStepList *bsl, AbstractProcessStep *bs); diff --git a/src/plugins/projectexplorer/task.cpp b/src/plugins/projectexplorer/task.cpp index ac7a8d48389..49fac5e5378 100644 --- a/src/plugins/projectexplorer/task.cpp +++ b/src/plugins/projectexplorer/task.cpp @@ -32,6 +32,8 @@ #include #include +#include "projectexplorerconstants.h" + namespace ProjectExplorer { @@ -69,6 +71,26 @@ Task::Task(TaskType type_, const QString &description_, ++s_nextId; } +Task Task::compilerMissingTask() +{ + return Task(Task::Error, + QCoreApplication::translate("ProjectExplorer::Task", + "Qt Creator needs a compiler set up to build. " + "Configure a compiler in the kit options."), + Utils::FileName(), -1, + ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); +} + +Task Task::buildConfigurationMissingTask() +{ + return Task(Task::Error, + QCoreApplication::translate("ProjectExplorer::Task", + "Qt Creator needs a build configuration set up to build. " + "Configure a build configuration in the project settings."), + Utils::FileName(), -1, + ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); +} + void Task::addMark(TextEditor::BaseTextMark *mark) { QTC_ASSERT(m_mark.isNull(), return); diff --git a/src/plugins/projectexplorer/task.h b/src/plugins/projectexplorer/task.h index c6e0d6bc561..c51a48df888 100644 --- a/src/plugins/projectexplorer/task.h +++ b/src/plugins/projectexplorer/task.h @@ -57,6 +57,9 @@ public: const Utils::FileName &file, int line, Core::Id category, const Utils::FileName &iconName = Utils::FileName()); + static Task compilerMissingTask(); + static Task buildConfigurationMissingTask(); + bool isNull() const; void clear(); @@ -79,6 +82,7 @@ public: // doesn't work if you split it up, nor are our parsers // anywhere near being that good QList formats; + private: QSharedPointer m_mark; static unsigned int s_nextId; diff --git a/src/plugins/qmakeprojectmanager/makestep.cpp b/src/plugins/qmakeprojectmanager/makestep.cpp index 4af4ecd79f7..14923acf33c 100644 --- a/src/plugins/qmakeprojectmanager/makestep.cpp +++ b/src/plugins/qmakeprojectmanager/makestep.cpp @@ -157,13 +157,15 @@ bool MakeStep::init() QmakeBuildConfiguration *bc = qmakeBuildConfiguration(); if (!bc) bc = qobject_cast(target()->activeBuildConfiguration()); + if (!bc) + emit addTask(Task::buildConfigurationMissingTask()); ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); - if (!tc) { - 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); + if (!tc) + emit addTask(Task::compilerMissingTask()); + + if (!bc || !tc) { + emitFaultyConfigurationMessage(); return false; } diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index aaefe22e8af..bb1e173bd58 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -286,7 +286,7 @@ bool QMakeStep::init() canContinue = false; } if (!canContinue) { - emit addOutput(tr("Configuration is faulty, please check the Issues view for details."), BuildStep::MessageOutput); + emitFaultyConfigurationMessage(); return false; } }