forked from qt-creator/qt-creator
ToolChainKitInformation: Choose a better c compiler when upgrading kits
Leave the C compiler empty for non-desktop kits. This stops kits targeting embedded devices from getting flagged with an error due to ABI mismatch between its compilers. Change-Id: I3906a3315fc8c4e7a9ed0831fe69cc7de9e39bf7 Reviewed-by: Rainer Keller <Rainer.Keller@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -145,7 +145,7 @@ ToolChainKitInformation::ToolChainKitInformation()
|
||||
static QMap<ToolChain::Language, QByteArray> defaultToolChainIds()
|
||||
{
|
||||
QMap<ToolChain::Language, QByteArray> toolChains;
|
||||
Abi abi = Abi::hostAbi();
|
||||
const Abi abi = Abi::hostAbi();
|
||||
QList<ToolChain *> tcList = Utils::filtered(ToolChainManager::toolChains(),
|
||||
Utils::equal(&ToolChain::targetAbi, abi));
|
||||
foreach (ToolChain::Language l, ToolChain::allLanguages()) {
|
||||
@@ -207,9 +207,13 @@ void ToolChainKitInformation::upgrade(Kit *k)
|
||||
} else {
|
||||
// Used up to 4.1:
|
||||
newValue.insert(ToolChain::languageId(ToolChain::Language::Cxx), oldValue.toString());
|
||||
// insert default C compiler which did not exist before
|
||||
newValue.insert(ToolChain::languageId(ToolChain::Language::C),
|
||||
defaultToolChainIds().value(ToolChain::Language::C));
|
||||
|
||||
const Core::Id typeId = DeviceTypeKitInformation::deviceTypeId(k);
|
||||
if (typeId == Constants::DESKTOP_DEVICE_TYPE) {
|
||||
// insert default C compiler which did not exist before
|
||||
newValue.insert(ToolChain::languageId(ToolChain::Language::C),
|
||||
defaultToolChainIds().value(ToolChain::Language::C));
|
||||
}
|
||||
}
|
||||
k->setValue(ToolChainKitInformation::id(), newValue);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user