From 0e1489a9f96500e71d8fba8634fa93e8aabf1851 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 18 Sep 2024 09:34:37 +0200 Subject: [PATCH] Android: De-noise setup code Change-Id: I0b0f1102dc144a2223e69b953d14a38bdefd9d98 Reviewed-by: Alessandro Portale --- src/plugins/android/androidtoolchain.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index cbf6baa8d0c..e358617ff34 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -24,7 +24,10 @@ namespace Android::Internal { static Q_LOGGING_CATEGORY(androidTCLog, "qtc.android.toolchainmanagement", QtWarningMsg); using ClangTargetsType = QHash; -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);