summaryrefslogtreecommitdiffstats
path: root/build/moz.configure/init.configure
diff options
context:
space:
mode:
Diffstat (limited to 'build/moz.configure/init.configure')
-rw-r--r--build/moz.configure/init.configure29
1 files changed, 27 insertions, 2 deletions
diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
index 11e22ee536..87120573a0 100644
--- a/build/moz.configure/init.configure
+++ b/build/moz.configure/init.configure
@@ -525,6 +525,16 @@ def split_triplet(triplet, allow_wasi=False):
elif os.startswith("darwin"):
canonical_kernel = "Darwin"
canonical_os = "OSX"
+ elif os.startswith("ios"):
+ canonical_kernel = "Darwin"
+ canonical_os = "iOS"
+ # old-configure does plenty of tests against $target and $target_os
+ # and expects darwin for iOS, so make it happy.
+ sub_configure_alias = sub_configure_alias[: -len(os)] + "darwin"
+ # rust knows ios-sim, clang knows ios-simulator. We only take the
+ # former as --target, but we need to make clang happy.
+ if os == "ios-sim":
+ os = "ios-simulator"
elif os.startswith("dragonfly"):
canonical_os = canonical_kernel = "DragonFly"
elif os.startswith("freebsd"):
@@ -603,7 +613,7 @@ def split_triplet(triplet, allow_wasi=False):
# prefixes. We need to be more specific about the LLVM target on Mac
# so cross-language LTO will work correctly.
- if os.startswith("darwin"):
+ if os.startswith(("darwin", "ios")):
toolchain = "%s-apple-%s" % (cpu, os)
else:
toolchain = "%s-%s" % (cpu, os)
@@ -647,12 +657,13 @@ def help_host_target(help, host, target):
def config_sub(shell, triplet):
config_sub = os.path.join(os.path.dirname(__file__), "..", "autoconf", "config.sub")
- # Config.sub doesn't like the *-windows-msvc/*-windows-gnu triplets, so
+ # Config.sub doesn't like the *-windows-msvc/*-windows-gnu/*-ios-sim triplets, so
# munge those before and after calling config.sub.
suffix = None
munging = {
"-windows-msvc": "-mingw32",
"-windows-gnu": "-mingw32",
+ "-ios-sim": "-ios",
}
for check_suffix, replacement in munging.items():
if triplet.endswith(check_suffix):
@@ -734,6 +745,8 @@ def real_target(value, host, shell, project, application):
else ("arm", "androideabi")
)
return split_triplet(f"{target_cpu}-unknown-linux-{target_system}")
+ if project == "mobile/ios":
+ return split_triplet("aarch64-apple-ios")
return host
# If --target was only given a cpu arch, expand it with the
# non-cpu part of the host. For mobile/android, expand it with
@@ -744,6 +757,8 @@ def real_target(value, host, shell, project, application):
rest = "unknown-linux-android"
if target.startswith("arm"):
rest += "eabi"
+ elif project == "mobile/ios":
+ rest = "apple-ios"
else:
cpu, rest = host.alias.split("-", 1)
target = "-".join((target, rest))
@@ -832,6 +847,7 @@ add_old_configure_assignment("TARGET_CPU", target.cpu)
set_config("TARGET_RAW_CPU", target.raw_cpu)
set_config("TARGET_OS", target.os)
set_config("TARGET_RAW_OS", target.raw_os)
+set_config("TARGET_KERNEL", target.kernel)
set_config("TARGET_ENDIANNESS", target.endianness)
@@ -903,6 +919,15 @@ set_define("XP_MACOSX", target_is_osx)
@depends(target)
+def target_is_ios(target):
+ if target.kernel == "Darwin" and target.os == "iOS":
+ return True
+
+
+set_define("XP_IOS", target_is_ios)
+
+
+@depends(target)
def target_has_linux_kernel(target):
if target.kernel == "Linux":
return True