1 use crate::spec::{cvs, TargetOptions};
5 #[allow(non_camel_case_types)]
20 fn target_arch_name(arch: Arch) -> &'static str {
25 Arm64 | Arm64_macabi | Arm64_sim => "arm64",
26 Arm64_32 => "arm64_32",
28 X86_64 | X86_64_macabi => "x86_64",
32 fn target_abi(arch: Arch) -> &'static str {
34 Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | X86_64 => "",
35 X86_64_macabi | Arm64_macabi => "macabi",
40 fn target_cpu(arch: Arch) -> &'static str {
42 Armv7 => "cortex-a8", // iOS7 is supported on iPhone 4 and higher
43 Armv7k => "cortex-a8",
44 Armv7s => "cortex-a9",
46 Arm64_32 => "apple-s4",
49 X86_64_macabi => "core2",
50 Arm64_macabi => "apple-a12",
51 Arm64_sim => "apple-a12",
55 fn link_env_remove(arch: Arch) -> Cow<'static, [Cow<'static, str>]> {
57 Armv7 | Armv7k | Armv7s | Arm64 | Arm64_32 | I386 | X86_64 | Arm64_sim => {
58 cvs!["MACOSX_DEPLOYMENT_TARGET"]
60 X86_64_macabi | Arm64_macabi => cvs!["IPHONEOS_DEPLOYMENT_TARGET"],
64 pub fn opts(os: &'static str, arch: Arch) -> TargetOptions {
66 abi: target_abi(arch).into(),
67 cpu: target_cpu(arch).into(),
68 link_env_remove: link_env_remove(arch),
69 has_thread_local: false,
70 ..super::apple_base::opts(os, target_arch_name(arch), target_abi(arch))