lib_cargo_apk/ops/build/
targets.rs

1use crate::config::AndroidBuildTarget;
2
3impl AndroidBuildTarget {
4    /// Identifier used in the NDK to refer to the ABI
5    pub fn android_abi(self) -> &'static str {
6        match self {
7            AndroidBuildTarget::ArmV7a => "armeabi-v7a",
8            AndroidBuildTarget::Arm64V8a => "arm64-v8a",
9            AndroidBuildTarget::X86 => "x86",
10            AndroidBuildTarget::X86_64 => "x86_64",
11        }
12    }
13
14    /// Returns the triple used by the rust build tools
15    pub fn rust_triple(self) -> &'static str {
16        match self {
17            AndroidBuildTarget::ArmV7a => "armv7-linux-androideabi",
18            AndroidBuildTarget::Arm64V8a => "aarch64-linux-android",
19            AndroidBuildTarget::X86 => "i686-linux-android",
20            AndroidBuildTarget::X86_64 => "x86_64-linux-android",
21        }
22    }
23
24    // Returns the triple NDK provided LLVM
25    pub fn ndk_llvm_triple(self) -> &'static str {
26        match self {
27            AndroidBuildTarget::ArmV7a => "armv7a-linux-androideabi",
28            AndroidBuildTarget::Arm64V8a => "aarch64-linux-android",
29            AndroidBuildTarget::X86 => "i686-linux-android",
30            AndroidBuildTarget::X86_64 => "x86_64-linux-android",
31        }
32    }
33
34    /// Returns the triple used by the non-LLVM parts of the NDK
35    pub fn ndk_triple(self) -> &'static str {
36        match self {
37            AndroidBuildTarget::ArmV7a => "arm-linux-androideabi",
38            AndroidBuildTarget::Arm64V8a => "aarch64-linux-android",
39            AndroidBuildTarget::X86 => "i686-linux-android",
40            AndroidBuildTarget::X86_64 => "x86_64-linux-android",
41        }
42    }
43}