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);
|
static Q_LOGGING_CATEGORY(androidTCLog, "qtc.android.toolchainmanagement", QtWarningMsg);
|
||||||
|
|
||||||
using ClangTargetsType = QHash<QString, Abi>;
|
using ClangTargetsType = QHash<QString, Abi>;
|
||||||
Q_GLOBAL_STATIC_WITH_ARGS(ClangTargetsType, ClangTargets, ({
|
|
||||||
|
const ClangTargetsType &clangTargets()
|
||||||
|
{
|
||||||
|
static const ClangTargetsType targets {
|
||||||
{"arm-linux-androideabi",
|
{"arm-linux-androideabi",
|
||||||
Abi(Abi::ArmArchitecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 32)},
|
Abi(Abi::ArmArchitecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 32)},
|
||||||
{"i686-linux-android",
|
{"i686-linux-android",
|
||||||
@@ -32,8 +35,10 @@ Q_GLOBAL_STATIC_WITH_ARGS(ClangTargetsType, ClangTargets, ({
|
|||||||
{"x86_64-linux-android",
|
{"x86_64-linux-android",
|
||||||
Abi(Abi::X86Architecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 64)},
|
Abi(Abi::X86Architecture, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, 64)},
|
||||||
{"aarch64-linux-android",
|
{"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,
|
static Toolchain *findToolchain(FilePath &compilerPath, Id lang, const QString &target,
|
||||||
const ToolchainList &alreadyKnown)
|
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) {
|
Toolchain *tc = Utils::findOrDefault(alreadyKnown, [target, compilerPath, lang](Toolchain *tc) {
|
||||||
return tc->typeId() == Constants::ANDROID_TOOLCHAIN_TYPEID
|
return tc->typeId() == Constants::ANDROID_TOOLCHAIN_TYPEID
|
||||||
&& tc->language() == lang
|
&& tc->language() == lang
|
||||||
&& tc->targetAbi() == ClangTargets->value(target)
|
&& tc->targetAbi() == clangTargets().value(target)
|
||||||
&& tc->compilerCommand() == compilerPath;
|
&& tc->compilerCommand() == compilerPath;
|
||||||
});
|
});
|
||||||
return tc;
|
return tc;
|
||||||
@@ -124,7 +129,7 @@ FilePath AndroidToolchain::makeCommand(const Environment &env) const
|
|||||||
|
|
||||||
GccToolchain::DetectedAbisResult AndroidToolchain::detectSupportedAbis() 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())
|
if (itr.value() == targetAbi())
|
||||||
return GccToolchain::DetectedAbisResult({targetAbi()}, itr.key());
|
return GccToolchain::DetectedAbisResult({targetAbi()}, itr.key());
|
||||||
}
|
}
|
||||||
@@ -186,8 +191,8 @@ ToolchainList autodetectToolchainsFromNdks(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto targetItr = ClangTargets->constBegin();
|
auto targetItr = clangTargets().constBegin();
|
||||||
while (targetItr != ClangTargets->constEnd()) {
|
while (targetItr != clangTargets().constEnd()) {
|
||||||
const Abi &abi = targetItr.value();
|
const Abi &abi = targetItr.value();
|
||||||
const QString target = targetItr.key();
|
const QString target = targetItr.key();
|
||||||
Toolchain *tc = findToolchain(compilerCommand, lang, target, alreadyKnown);
|
Toolchain *tc = findToolchain(compilerCommand, lang, target, alreadyKnown);
|
||||||
@@ -208,7 +213,7 @@ ToolchainList autodetectToolchainsFromNdks(
|
|||||||
atc->setNdkLocation(ndkLocation);
|
atc->setNdkLocation(ndkLocation);
|
||||||
atc->setOriginalTargetTriple(target);
|
atc->setOriginalTargetTriple(target);
|
||||||
atc->setLanguage(lang);
|
atc->setLanguage(lang);
|
||||||
atc->setTargetAbi(ClangTargets->value(target));
|
atc->setTargetAbi(clangTargets().value(target));
|
||||||
atc->setPlatformCodeGenFlags({"-target", target});
|
atc->setPlatformCodeGenFlags({"-target", target});
|
||||||
atc->setPlatformLinkerFlags({"-target", target});
|
atc->setPlatformLinkerFlags({"-target", target});
|
||||||
atc->setDisplayName(displayName);
|
atc->setDisplayName(displayName);
|
||||||
|
Reference in New Issue
Block a user