1 use crate::{spec::cvs, spec::TargetOptions}
;
5 #[allow(non_camel_case_types)]
18 fn target_abi(arch
: Arch
) -> &'
static str {
20 Armv7
| Armv7s
| Arm64
| I386
| X86_64
=> "",
21 X86_64_macabi
| Arm64_macabi
=> "macabi",
26 fn target_cpu(arch
: Arch
) -> &'
static str {
28 Armv7
=> "cortex-a8", // iOS7 is supported on iPhone 4 and higher
29 Armv7s
=> "cortex-a9",
33 X86_64_macabi
=> "core2",
34 Arm64_macabi
=> "apple-a12",
35 Arm64_sim
=> "apple-a12",
39 fn link_env_remove(arch
: Arch
) -> Cow
<'
static, [Cow
<'
static, str>]> {
41 Armv7
| Armv7s
| Arm64
| I386
| X86_64
| Arm64_sim
=> {
42 cvs
!["MACOSX_DEPLOYMENT_TARGET"]
44 X86_64_macabi
| Arm64_macabi
=> cvs
!["IPHONEOS_DEPLOYMENT_TARGET"],
48 pub fn opts(os
: &'
static str, arch
: Arch
) -> TargetOptions
{
50 abi
: target_abi(arch
).into(),
51 cpu
: target_cpu(arch
).into(),
52 dynamic_linking
: false,
54 link_env_remove
: link_env_remove(arch
),
55 has_thread_local
: false,
56 ..super::apple_base
::opts(os
)