Android: make sure old autodected toolchains are marked as autoDetected

Some toolchains that were auto detected in previous sessions or version
of Creator might re-appear as manual toolchains. Thus, make sure that's
fixed. Also, make sure the name of old toolchains is updated with the
current name format.

Change-Id: I04d2145cb9c5e1e25e2bcbc21c014280bc355195
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Assam Boudjelthia
2020-02-25 12:27:23 +02:00
parent a3635a697b
commit c3c5708741

View File

@@ -228,8 +228,16 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(const ToolChai
const Abi &abi = targetItr.value();
const QString target = targetItr.key();
ToolChain *tc = findToolChain(compilerCommand, lang, target, alreadyKnown);
const QString displayName(QString("Android Clang (%1, %2, NDK %3)")
.arg(ToolChainManager::displayNameOfLanguageId(lang),
AndroidConfig::displayName(abi),
config.ndkVersion(qtVersion).toString()));
if (tc) {
qCDebug(androidTCLog) << "Tool chain already known" << abi.toString() << lang;
// make sure to update the toolchain with current name format
if (tc->displayName() != displayName)
tc->setDisplayName(displayName);
} else {
qCDebug(androidTCLog) << "New Clang toolchain found" << abi.toString() << lang;
auto atc = new AndroidToolChain();
@@ -239,14 +247,11 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(const ToolChai
atc->setTargetAbi(ClangTargets[target]);
atc->setPlatformCodeGenFlags({"-target", target});
atc->setPlatformLinkerFlags({"-target", target});
atc->setDetection(ToolChain::AutoDetection);
atc->setDisplayName(QString("Android Clang (%1, %2, NDK %3)")
.arg(ToolChainManager::displayNameOfLanguageId(lang),
AndroidConfig::displayName(abi),
config.ndkVersion(qtVersion).toString()));
atc->setDisplayName(displayName);
atc->resetToolChain(compilerCommand);
tc = atc;
}
tc->setDetection(ToolChain::AutoDetection);
result << tc;
++targetItr;
}