From 06de43a2f9999ef05d6349932e8e3e302a99ff53 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 17 Dec 2012 16:26:14 +0100 Subject: [PATCH] Kits: Mkspec will fix the ToolChain now if possible Change-Id: I142063e7c1158f013b4e5005fa4263df0f025124 Reviewed-by: Erik Verbruggen --- .../qt4projectmanager/qmakekitinformation.cpp | 25 +++++++++++++++++++ .../qt4projectmanager/qmakekitinformation.h | 1 + 2 files changed, 26 insertions(+) diff --git a/src/plugins/qt4projectmanager/qmakekitinformation.cpp b/src/plugins/qt4projectmanager/qmakekitinformation.cpp index f4c2f8e42b5..65dc5d1acc4 100644 --- a/src/plugins/qt4projectmanager/qmakekitinformation.cpp +++ b/src/plugins/qt4projectmanager/qmakekitinformation.cpp @@ -33,6 +33,7 @@ #include "qmakekitconfigwidget.h" #include +#include #include #include @@ -83,6 +84,30 @@ QList QmakeKitInformation::validate(const ProjectExplorer return result; } +void QmakeKitInformation::fix(ProjectExplorer::Kit *k) +{ + QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k); + if (!version) + return; + + Utils::FileName spec = QmakeKitInformation::mkspec(k); + if (spec.isEmpty()) + spec = version->mkspec(); + + ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); + + if (!tc || !tc->suggestedMkspecList().contains(spec)) { + QList tcList = ProjectExplorer::ToolChainManager::instance()->toolChains(); + foreach (ProjectExplorer::ToolChain *current, tcList) { + if (version->qtAbis().contains(current->targetAbi()) + && current->suggestedMkspecList().contains(spec)) { + ProjectExplorer::ToolChainKitInformation::setToolChain(k, current); + break; + } + } + } +} + ProjectExplorer::KitConfigWidget * QmakeKitInformation::createConfigWidget(ProjectExplorer::Kit *k) const { diff --git a/src/plugins/qt4projectmanager/qmakekitinformation.h b/src/plugins/qt4projectmanager/qmakekitinformation.h index 59a43d4a2f2..e1c630f5884 100644 --- a/src/plugins/qt4projectmanager/qmakekitinformation.h +++ b/src/plugins/qt4projectmanager/qmakekitinformation.h @@ -50,6 +50,7 @@ public: QVariant defaultValue(ProjectExplorer::Kit *k) const; QList validate(const ProjectExplorer::Kit *k) const; + void fix(ProjectExplorer::Kit *k); ProjectExplorer::KitConfigWidget *createConfigWidget(ProjectExplorer::Kit *k) const;