forked from qt-creator/qt-creator
Android: De-noise setup code
Change-Id: I0b0f1102dc144a2223e69b953d14a38bdefd9d98 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -24,7 +24,10 @@ namespace Android::Internal {
|
||||
static Q_LOGGING_CATEGORY(androidTCLog, "qtc.android.toolchainmanagement", QtWarningMsg);
|
||||
|
||||
using ClangTargetsType = QHash<QString, Abi>;
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(ClangTargetsType, ClangTargets, ({
|
||||
|
||||
const ClangTargetsType &clangTargets()
|
||||
{
|
||||
static const ClangTargetsType targets {
|
||||
{"arm-linux-androideabi",
|
||||
Abi(Abi::ArmArchitecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 32)},
|
||||
{"i686-linux-android",
|
||||
@@ -32,8 +35,10 @@ Q_GLOBAL_STATIC_WITH_ARGS(ClangTargetsType, ClangTargets, ({
|
||||
{"x86_64-linux-android",
|
||||
Abi(Abi::X86Architecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 64)},
|
||||
{"aarch64-linux-android",
|
||||
Abi(Abi::ArmArchitecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 64)}}
|
||||
));
|
||||
Abi(Abi::ArmArchitecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 64)}
|
||||
};
|
||||
return targets;
|
||||
}
|
||||
|
||||
static Toolchain *findToolchain(FilePath &compilerPath, Id lang, const QString &target,
|
||||
const ToolchainList &alreadyKnown)
|
||||
@@ -41,7 +46,7 @@ static Toolchain *findToolchain(FilePath &compilerPath, Id lang, const QString &
|
||||
Toolchain *tc = Utils::findOrDefault(alreadyKnown, [target, compilerPath, lang](Toolchain *tc) {
|
||||
return tc->typeId() == Constants::ANDROID_TOOLCHAIN_TYPEID
|
||||
&& tc->language() == lang
|
||||
&& tc->targetAbi() == ClangTargets->value(target)
|
||||
&& tc->targetAbi() == clangTargets().value(target)
|
||||
&& tc->compilerCommand() == compilerPath;
|
||||
});
|
||||
return tc;
|
||||
@@ -124,7 +129,7 @@ FilePath AndroidToolchain::makeCommand(const Environment &env) const
|
||||
|
||||
GccToolchain::DetectedAbisResult AndroidToolchain::detectSupportedAbis() const
|
||||
{
|
||||
for (auto itr = ClangTargets->constBegin(); itr != ClangTargets->constEnd(); ++itr) {
|
||||
for (auto itr = clangTargets().constBegin(); itr != clangTargets().constEnd(); ++itr) {
|
||||
if (itr.value() == targetAbi())
|
||||
return GccToolchain::DetectedAbisResult({targetAbi()}, itr.key());
|
||||
}
|
||||
@@ -186,8 +191,8 @@ ToolchainList autodetectToolchainsFromNdks(
|
||||
continue;
|
||||
}
|
||||
|
||||
auto targetItr = ClangTargets->constBegin();
|
||||
while (targetItr != ClangTargets->constEnd()) {
|
||||
auto targetItr = clangTargets().constBegin();
|
||||
while (targetItr != clangTargets().constEnd()) {
|
||||
const Abi &abi = targetItr.value();
|
||||
const QString target = targetItr.key();
|
||||
Toolchain *tc = findToolchain(compilerCommand, lang, target, alreadyKnown);
|
||||
@@ -208,7 +213,7 @@ ToolchainList autodetectToolchainsFromNdks(
|
||||
atc->setNdkLocation(ndkLocation);
|
||||
atc->setOriginalTargetTriple(target);
|
||||
atc->setLanguage(lang);
|
||||
atc->setTargetAbi(ClangTargets->value(target));
|
||||
atc->setTargetAbi(clangTargets().value(target));
|
||||
atc->setPlatformCodeGenFlags({"-target", target});
|
||||
atc->setPlatformLinkerFlags({"-target", target});
|
||||
atc->setDisplayName(displayName);
|
||||
|
Reference in New Issue
Block a user