diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 1287f4946fa..5e2c8eb3954 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1044,7 +1044,6 @@ void AndroidConfigurations::updateAutomaticKitList() } // register new kits - QList newKits; const QList tmp = ToolChainManager::toolChains([](const ToolChain *tc) { return tc->isAutoDetected() && tc->isValid() @@ -1061,19 +1060,27 @@ void AndroidConfigurations::updateAutomaticKitList() [tc](AndroidToolChain *otherTc) { 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())) { Kit *newKit = new Kit; - newKit->setAutoDetected(true); - newKit->setAutoDetectionSource("AndroidConfiguration"); - DeviceTypeKitInformation::setDeviceTypeId(newKit, Core::Id(Constants::ANDROID_DEVICE_TYPE)); - 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); + initBasicKitData(newKit, qt); + Kit *existingKit = Utils::findOrDefault(existingKits, [newKit](const Kit *k) { + return matchKits(newKit, k); + }); if (existingKit) { + // Existing kit found. + // Update the existing kit with new data. + initBasicKitData(existingKit, qt); KitManager::deleteKit(newKit); newKit = existingKit; }