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;