diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2012-09-06 13:13:12 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2012-09-06 16:52:21 +0200 |
commit | 9d90f8b396e8e42e4181edf6cb87d2ae7deddead (patch) | |
tree | 05b8085bb713e6ec66de87da2bb447d0ccfd0cb0 | |
parent | 8b05f1afafb044b3f3ca7eeead2e106fb9aa3e28 (diff) |
Warn if kit has no tool chain set up
Change-Id: I551402c1e3023feeeb127f001a0e908938a07fc2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
-rw-r--r-- | src/plugins/autotoolsprojectmanager/makestep.cpp | 25 | ||||
-rw-r--r-- | src/plugins/autotoolsprojectmanager/makestep.h | 2 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/makestep.cpp | 21 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/makestep.h | 1 | ||||
-rw-r--r-- | src/plugins/genericprojectmanager/genericmakestep.cpp | 21 | ||||
-rw-r--r-- | src/plugins/genericprojectmanager/genericmakestep.h | 1 | ||||
-rw-r--r-- | src/plugins/qt4projectmanager/makestep.cpp | 17 |
7 files changed, 71 insertions, 17 deletions
diff --git a/src/plugins/autotoolsprojectmanager/makestep.cpp b/src/plugins/autotoolsprojectmanager/makestep.cpp index 01738224ce..15da9b6474 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.cpp +++ b/src/plugins/autotoolsprojectmanager/makestep.cpp @@ -168,14 +168,23 @@ void MakeStep::setClean(bool clean) bool MakeStep::init() { AutotoolsBuildConfiguration *bc = autotoolsBuildConfiguration(); + if (!bc) + bc = static_cast<AutotoolsBuildConfiguration *>(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 + } QString arguments = Utils::QtcProcess::joinArgs(m_buildTargets); Utils::QtcProcess::addArgs(&arguments, additionalArguments()); setIgnoreReturnValue(m_clean); - ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); - ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); pp->setEnvironment(bc->environment()); @@ -193,6 +202,18 @@ bool MakeStep::init() void MakeStep::run(QFutureInterface<bool> &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); + return; + } + AbstractProcessStep::run(interface); } diff --git a/src/plugins/autotoolsprojectmanager/makestep.h b/src/plugins/autotoolsprojectmanager/makestep.h index 9a1e180d18..3f8145ef47 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.h +++ b/src/plugins/autotoolsprojectmanager/makestep.h @@ -36,6 +36,7 @@ #define MAKESTEP_H #include <projectexplorer/abstractprocessstep.h> +#include <projectexplorer/task.h> QT_BEGIN_NAMESPACE class QLineEdit; @@ -124,6 +125,7 @@ private: QStringList m_buildTargets; QString m_additionalArguments; bool m_clean; + QList<ProjectExplorer::Task> m_tasks; }; /////////////////////////////// diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index feda03a96c..cb54f8a4b9 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -132,12 +132,20 @@ bool MakeStep::init() if (!bc) bc = static_cast<CMakeBuildConfiguration *>(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 + } + QString arguments = Utils::QtcProcess::joinArgs(m_buildTargets); Utils::QtcProcess::addArgs(&arguments, additionalArguments()); setIgnoreReturnValue(m_clean); - ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); pp->setEnvironment(bc->environment()); @@ -158,6 +166,17 @@ bool MakeStep::init() void MakeStep::run(QFutureInterface<bool> &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); + return; + } + m_futureInterface = &fi; m_futureInterface->setProgressRange(0, 100); AbstractProcessStep::run(fi); diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h index a71d1e0163..b8342705e1 100644 --- a/src/plugins/cmakeprojectmanager/makestep.h +++ b/src/plugins/cmakeprojectmanager/makestep.h @@ -94,6 +94,7 @@ private: QFutureInterface<bool> *m_futureInterface; QStringList m_buildTargets; QString m_additionalArguments; + QList<ProjectExplorer::Task> m_tasks; }; class MakeStepConfigWidget :public ProjectExplorer::BuildStepConfigWidget diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index 6100366af4..f66b78f961 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -106,6 +106,15 @@ bool GenericMakeStep::init() if (!bc) bc = static_cast<GenericBuildConfiguration *>(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 + } + ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); pp->setWorkingDirectory(bc->buildDirectory()); @@ -119,7 +128,6 @@ bool GenericMakeStep::init() setIgnoreReturnValue(m_clean); setOutputParser(new GnuMakeParser()); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); if (tc) appendOutputParser(tc->outputParser()); outputParser()->setWorkingDirectory(pp->effectiveWorkingDirectory()); @@ -180,6 +188,17 @@ QString GenericMakeStep::makeCommand() const void GenericMakeStep::run(QFutureInterface<bool> &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); + return; + } + AbstractProcessStep::run(fi); } diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h index 769cabcfa6..b524ef3eff 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.h +++ b/src/plugins/genericprojectmanager/genericmakestep.h @@ -85,6 +85,7 @@ private: QString m_makeArguments; QString m_makeCommand; bool m_clean; + QList<ProjectExplorer::Task> m_tasks; }; class GenericMakeStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index eb11365323..39e414f5e7 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -144,18 +144,11 @@ bool MakeStep::init() bc = qobject_cast<Qt4BuildConfiguration *>(target()->activeBuildConfiguration()); m_tasks.clear(); - if (!bc) { - m_tasks.append(Task(Task::Error, tr("Qt Creator needs a build configuration set up to build. Configure a target in Project mode."), - Utils::FileName(), -1, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - return true; // otherwise the tasks will not get reported - } - 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 target options."), - Utils::FileName(), -1, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); + 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 } @@ -278,12 +271,10 @@ bool MakeStep::init() void MakeStep::run(QFutureInterface<bool> & fi) { - // Warn on common error conditions: bool canContinue = true; foreach (const Task &t, m_tasks) { addTask(t); - if (t.type == Task::Error) - canContinue = false; + canContinue = false; } if (!canContinue) { emit addOutput(tr("Configuration is faulty. Check the Issues view for details."), BuildStep::MessageOutput); |