forked from qt-creator/qt-creator
Android: Fix android kit missing compiler on NDK path change
Task-number: QTCREATORBUG-18221 Change-Id: I4481d252064476f905a02a53c487664f3e1d4a4c Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -1044,7 +1044,6 @@ void AndroidConfigurations::updateAutomaticKitList()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// register new kits
|
// register new kits
|
||||||
QList<Kit *> newKits;
|
|
||||||
const QList<ToolChain *> tmp = ToolChainManager::toolChains([](const ToolChain *tc) {
|
const QList<ToolChain *> tmp = ToolChainManager::toolChains([](const ToolChain *tc) {
|
||||||
return tc->isAutoDetected()
|
return tc->isAutoDetected()
|
||||||
&& tc->isValid()
|
&& tc->isValid()
|
||||||
@@ -1061,19 +1060,27 @@ void AndroidConfigurations::updateAutomaticKitList()
|
|||||||
[tc](AndroidToolChain *otherTc) {
|
[tc](AndroidToolChain *otherTc) {
|
||||||
return tc->targetAbi() == otherTc->targetAbi();
|
return tc->targetAbi() == otherTc->targetAbi();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
auto initBasicKitData = [allLanguages, device](Kit *k, const QtSupport::BaseQtVersion *qt) {
|
||||||
|
k->setAutoDetected(true);
|
||||||
|
k->setAutoDetectionSource("AndroidConfiguration");
|
||||||
|
DeviceTypeKitInformation::setDeviceTypeId(k, Core::Id(Constants::ANDROID_DEVICE_TYPE));
|
||||||
|
for (AndroidToolChain *tc : allLanguages)
|
||||||
|
ToolChainKitInformation::setToolChain(k, tc);
|
||||||
|
QtSupport::QtKitInformation::setQtVersion(k, qt);
|
||||||
|
DeviceKitInformation::setDevice(k, device);
|
||||||
|
};
|
||||||
|
|
||||||
for (const QtSupport::BaseQtVersion *qt : qtVersionsForArch.value(tc->targetAbi())) {
|
for (const QtSupport::BaseQtVersion *qt : qtVersionsForArch.value(tc->targetAbi())) {
|
||||||
Kit *newKit = new Kit;
|
Kit *newKit = new Kit;
|
||||||
newKit->setAutoDetected(true);
|
initBasicKitData(newKit, qt);
|
||||||
newKit->setAutoDetectionSource("AndroidConfiguration");
|
Kit *existingKit = Utils::findOrDefault(existingKits, [newKit](const Kit *k) {
|
||||||
DeviceTypeKitInformation::setDeviceTypeId(newKit, Core::Id(Constants::ANDROID_DEVICE_TYPE));
|
return matchKits(newKit, k);
|
||||||
for (AndroidToolChain *tc : allLanguages)
|
});
|
||||||
ToolChainKitInformation::setToolChain(newKit, tc);
|
|
||||||
QtSupport::QtKitInformation::setQtVersion(newKit, qt);
|
|
||||||
DeviceKitInformation::setDevice(newKit, device);
|
|
||||||
|
|
||||||
auto findExistingKit = [newKit](const Kit *k) { return matchKits(newKit, k); };
|
|
||||||
Kit *existingKit = Utils::findOrDefault(existingKits, findExistingKit);
|
|
||||||
if (existingKit) {
|
if (existingKit) {
|
||||||
|
// Existing kit found.
|
||||||
|
// Update the existing kit with new data.
|
||||||
|
initBasicKitData(existingKit, qt);
|
||||||
KitManager::deleteKit(newKit);
|
KitManager::deleteKit(newKit);
|
||||||
newKit = existingKit;
|
newKit = existingKit;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user