cc/target/
apple.rs
1use super::TargetInfo;
2
3impl TargetInfo<'_> {
4 pub(crate) fn apple_sdk_name(&self) -> &'static str {
5 match (self.os, self.abi) {
6 ("macos", "") => "macosx",
7 ("ios", "") => "iphoneos",
8 ("ios", "sim") => "iphonesimulator",
9 ("ios", "macabi") => "macosx",
10 ("tvos", "") => "appletvos",
11 ("tvos", "sim") => "appletvsimulator",
12 ("watchos", "") => "watchos",
13 ("watchos", "sim") => "watchsimulator",
14 ("visionos", "") => "xros",
15 ("visionos", "sim") => "xrsimulator",
16 (os, _) => panic!("invalid Apple target OS {}", os),
17 }
18 }
19
20 pub(crate) fn apple_version_flag(&self, min_version: &str) -> String {
21 match (self.os, self.abi) {
22 ("macos", "") => format!("-mmacosx-version-min={min_version}"),
23 ("ios", "") => format!("-miphoneos-version-min={min_version}"),
24 ("ios", "sim") => format!("-mios-simulator-version-min={min_version}"),
25 ("ios", "macabi") => format!("-mtargetos=ios{min_version}-macabi"),
26 ("tvos", "") => format!("-mappletvos-version-min={min_version}"),
27 ("tvos", "sim") => format!("-mappletvsimulator-version-min={min_version}"),
28 ("watchos", "") => format!("-mwatchos-version-min={min_version}"),
29 ("watchos", "sim") => format!("-mwatchsimulator-version-min={min_version}"),
30 ("visionos", "") => format!("-mtargetos=xros{min_version}"),
33 ("visionos", "sim") => format!("-mtargetos=xros{min_version}-simulator"),
34 (os, _) => panic!("invalid Apple target OS {}", os),
35 }
36 }
37}