diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index 4a34ace6f42..f319d2a10f9 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -129,6 +130,14 @@ bool MakeStep::fromMap(const QVariantMap &map) bool MakeStep::init() { Qt4BuildConfiguration *bc = qt4BuildConfiguration(); + + if (!bc->toolChain()) { + m_tasks.append(ProjectExplorer::Task(ProjectExplorer::Task::Error, + tr("Qt Creator needs a tool chain set up to build. Please configure a tool chain in Project mode."), + QString(), -1, + QLatin1String(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); + } + ProjectExplorer::ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); @@ -205,6 +214,20 @@ void MakeStep::run(QFutureInterface & fi) return; } + // Warn on common error conditions: + bool canContinue = true; + foreach (const ProjectExplorer::Task &t, m_tasks) { + addTask(t); + if (t.type == ProjectExplorer::Task::Error) + canContinue = false; + } + if (!canContinue) { + emit addOutput(tr("Configuration is faulty, please check the Build Issues view for details."), BuildStep::MessageOutput); + fi.reportResult(false); + return; + } + + AbstractProcessStep::run(fi); } diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h index ce67269e239..599b78e82e4 100644 --- a/src/plugins/qt4projectmanager/makestep.h +++ b/src/plugins/qt4projectmanager/makestep.h @@ -36,6 +36,7 @@ #include #include +#include QT_BEGIN_NAMESPACE namespace Ui { @@ -116,6 +117,7 @@ private: bool m_clean; QString m_userArgs; QString m_makeCmd; + QList m_tasks; }; class MakeStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget