Skip to content

Commit 6f019eb

Browse files
fix: platform tag detection for Android targets
Follow up of a23a6b5 (PyO3#2992) It is recommended to go through the commit message linked above before trying to decode this. Since earlier Android was detected as Os::Linux, this extra condition was required, this should no longer be the case. So clean it up Issue originally reported in PyO3#2992 (comment)
1 parent 468a6e5 commit 6f019eb

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

src/build_context.rs

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -655,31 +655,32 @@ impl BuildContext {
655655
(Os::Windows, Arch::X86) => "win32".to_string(),
656656
(Os::Windows, Arch::X86_64) => "win_amd64".to_string(),
657657
(Os::Windows, Arch::Aarch64) => "win_arm64".to_string(),
658+
// Android
659+
(Os::Android, _) => {
660+
let arch = target.get_platform_arch()?;
661+
let android_arch = match arch.as_str() {
662+
"armv7l" => "armeabi_v7a",
663+
"aarch64" => "arm64_v8a",
664+
"i686" => "x86",
665+
"x86_64" => "x86_64",
666+
_ => bail!("Unsupported Android architecture: {}", arch),
667+
};
668+
let api_level = find_android_api_level(target.target_triple(), &self.manifest_path)?;
669+
format!("android_{}_{}", api_level, android_arch)
670+
}
658671
// Linux
659672
(Os::Linux, _) => {
660673
let arch = target.get_platform_arch()?;
661-
if target.target_triple().contains("android") {
662-
let android_arch = match arch.as_str() {
663-
"armv7l" => "armeabi_v7a",
664-
"aarch64" => "arm64_v8a",
665-
"i686" => "x86",
666-
"x86_64" => "x86_64",
667-
_ => bail!("Unsupported Android architecture: {}", arch),
668-
};
669-
let api_level = find_android_api_level(target.target_triple(), &self.manifest_path)?;
670-
format!("android_{}_{}", api_level, android_arch)
671-
} else {
672-
let mut platform_tags = platform_tags.to_vec();
673-
platform_tags.sort();
674-
let mut tags = vec![];
675-
for platform_tag in platform_tags {
676-
tags.push(format!("{platform_tag}_{arch}"));
677-
for alias in platform_tag.aliases() {
678-
tags.push(format!("{alias}_{arch}"));
679-
}
674+
let mut platform_tags = platform_tags.to_vec();
675+
platform_tags.sort();
676+
let mut tags = vec![];
677+
for platform_tag in platform_tags {
678+
tags.push(format!("{platform_tag}_{arch}"));
679+
for alias in platform_tag.aliases() {
680+
tags.push(format!("{alias}_{arch}"));
680681
}
681-
tags.join(".")
682682
}
683+
tags.join(".")
683684
}
684685
// macOS
685686
(Os::Macos, Arch::X86_64) | (Os::Macos, Arch::Aarch64) => {

0 commit comments

Comments
 (0)