aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-07-20 13:22:47 +0100
committerGitHub <noreply@github.com>2025-07-20 13:22:47 +0100
commit98c2425fe0aaa749e08387986afc0aa4797ed0da (patch)
treea7ea85baeee1fa4644f296eaf923a6d8cadf746c
parenta90ee538666fbfb0dae1818d3a219d0ea8bc859e (diff)
parent63b9cb18ef9d64c1de6b5dbb018993968586dd59 (diff)
Merge pull request #5467 from harold-b/hb.ios-subtarget-rename-iphone
Rename `iOS` subtarget to `iPhone`, add `ODIN_PLATFORM_SUBTARGET_IOS`
-rw-r--r--base/builtin/builtin.odin2
-rw-r--r--base/runtime/core.odin4
-rw-r--r--core/sys/darwin/sync.odin20
-rw-r--r--core/sys/info/platform_darwin.odin2
-rw-r--r--src/build_settings.cpp12
-rw-r--r--src/checker.cpp2
-rw-r--r--src/linker.cpp2
7 files changed, 18 insertions, 26 deletions
diff --git a/base/builtin/builtin.odin b/base/builtin/builtin.odin
index af102ee0b..2dd214321 100644
--- a/base/builtin/builtin.odin
+++ b/base/builtin/builtin.odin
@@ -145,7 +145,7 @@ ODIN_OS_STRING :: ODIN_OS_STRING
/*
An `enum` value indicating the platform subtarget, chosen using the `-subtarget` switch.
- Possible values are: `.Default` `.iOS`, .iPhoneSimulator, and `.Android`.
+ Possible values are: `.Default` `.iPhone`, .iPhoneSimulator, and `.Android`.
*/
ODIN_PLATFORM_SUBTARGET :: ODIN_PLATFORM_SUBTARGET
diff --git a/base/runtime/core.odin b/base/runtime/core.odin
index 6c43e6c16..090d1a65b 100644
--- a/base/runtime/core.odin
+++ b/base/runtime/core.odin
@@ -557,7 +557,7 @@ ALL_ODIN_OS_TYPES :: Odin_OS_Types{
// Defined internally by the compiler
Odin_Platform_Subtarget_Type :: enum int {
Default,
- iOS,
+ iPhone,
iPhoneSimulator
Android,
}
@@ -566,6 +566,8 @@ Odin_Platform_Subtarget_Type :: type_of(ODIN_PLATFORM_SUBTARGET)
Odin_Platform_Subtarget_Types :: bit_set[Odin_Platform_Subtarget_Type]
+@(builtin)
+ODIN_PLATFORM_SUBTARGET_IOS :: ODIN_PLATFORM_SUBTARGET == .iPhone || ODIN_PLATFORM_SUBTARGET == .iPhoneSimulator
/*
// Defined internally by the compiler
diff --git a/core/sys/darwin/sync.odin b/core/sys/darwin/sync.odin
index 6d68dc8f8..5f4f16fc3 100644
--- a/core/sys/darwin/sync.odin
+++ b/core/sys/darwin/sync.odin
@@ -3,23 +3,13 @@ package darwin
// #define OS_WAIT_ON_ADDR_AVAILABILITY \
// __API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), watchos(10.4))
when ODIN_OS == .Darwin {
-
- when ODIN_PLATFORM_SUBTARGET == .iOS && ODIN_MINIMUM_OS_VERSION >= 17_04_00 {
- WAIT_ON_ADDRESS_AVAILABLE :: true
- } else when ODIN_MINIMUM_OS_VERSION >= 14_04_00 {
- WAIT_ON_ADDRESS_AVAILABLE :: true
+ when ODIN_PLATFORM_SUBTARGET_IOS {
+ WAIT_ON_ADDRESS_AVAILABLE :: ODIN_MINIMUM_OS_VERSION >= 17_04_00
+ ULOCK_WAIT_2_AVAILABLE :: ODIN_MINIMUM_OS_VERSION >= 14_00_00
} else {
- WAIT_ON_ADDRESS_AVAILABLE :: false
+ WAIT_ON_ADDRESS_AVAILABLE :: ODIN_MINIMUM_OS_VERSION >= 14_04_00
+ ULOCK_WAIT_2_AVAILABLE :: ODIN_MINIMUM_OS_VERSION >= 11_00_00
}
-
- when ODIN_PLATFORM_SUBTARGET == .iOS && ODIN_MINIMUM_OS_VERSION >= 14_00_00 {
- ULOCK_WAIT_2_AVAILABLE :: true
- } else when ODIN_MINIMUM_OS_VERSION >= 11_00_00 {
- ULOCK_WAIT_2_AVAILABLE :: true
- } else {
- ULOCK_WAIT_2_AVAILABLE :: false
- }
-
} else {
WAIT_ON_ADDRESS_AVAILABLE :: false
ULOCK_WAIT_2_AVAILABLE :: false
diff --git a/core/sys/info/platform_darwin.odin b/core/sys/info/platform_darwin.odin
index dd7f0fa03..3fc8064ec 100644
--- a/core/sys/info/platform_darwin.odin
+++ b/core/sys/info/platform_darwin.odin
@@ -28,7 +28,7 @@ init_platform :: proc() {
macos_version = {int(version.majorVersion), int(version.minorVersion), int(version.patchVersion)}
- when ODIN_PLATFORM_SUBTARGET == .iOS {
+ when ODIN_PLATFORM_SUBTARGET_IOS {
os_version.platform = .iOS
ws(&b, "iOS")
} else {
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index d98340844..fb88b588a 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -171,7 +171,7 @@ struct TargetMetrics {
enum Subtarget : u32 {
Subtarget_Default,
- Subtarget_iOS,
+ Subtarget_iPhone,
Subtarget_iPhoneSimulator,
Subtarget_Android,
@@ -180,7 +180,7 @@ enum Subtarget : u32 {
gb_global String subtarget_strings[Subtarget_COUNT] = {
str_lit(""),
- str_lit("ios"),
+ str_lit("iphone"),
str_lit("iphonesimulator"),
str_lit("android"),
};
@@ -1828,13 +1828,13 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
if (metrics->os == TargetOs_darwin) {
switch (subtarget) {
- case Subtarget_iOS:
+ case Subtarget_iPhone:
switch (metrics->arch) {
case TargetArch_arm64:
bc->metrics.target_triplet = str_lit("arm64-apple-ios");
break;
default:
- GB_PANIC("Unknown architecture for -subtarget:ios");
+ GB_PANIC("Unknown architecture for -subtarget:iphone");
}
break;
case Subtarget_iPhoneSimulator:
@@ -1909,7 +1909,7 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
if (!bc->minimum_os_version_string_given) {
if (subtarget == Subtarget_Default) {
bc->minimum_os_version_string = str_lit("11.0.0");
- } else if (subtarget == Subtarget_iOS || subtarget == Subtarget_iPhoneSimulator) {
+ } else if (subtarget == Subtarget_iPhone || subtarget == Subtarget_iPhoneSimulator) {
// NOTE(harold): We default to 17.4 on iOS because that's when os_sync_wait_on_address was added and
// we'd like to avoid any potential App Store issues by using the private ulock_* there.
bc->minimum_os_version_string = str_lit("17.4");
@@ -1917,7 +1917,7 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
}
if (subtarget == Subtarget_iPhoneSimulator) {
- // For the iOS simulator subtarget, the version must be between 'ios' and '-simulator'.
+ // For the iPhoneSimulator subtarget, the version must be between 'ios' and '-simulator'.
String suffix = str_lit("-simulator");
GB_ASSERT(string_ends_with(bc->metrics.target_triplet, suffix));
diff --git a/src/checker.cpp b/src/checker.cpp
index 625536caa..1821cbd4d 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -1172,7 +1172,7 @@ gb_internal void init_universal(void) {
{
GlobalEnumValue values[Subtarget_COUNT] = {
{"Default", Subtarget_Default},
- {"iOS", Subtarget_iOS},
+ {"iPhone", Subtarget_iPhone},
{"iPhoneSimulator", Subtarget_iPhoneSimulator},
{"Android", Subtarget_Android},
};
diff --git a/src/linker.cpp b/src/linker.cpp
index 7647ed872..41333a3c9 100644
--- a/src/linker.cpp
+++ b/src/linker.cpp
@@ -787,7 +787,7 @@ try_cross_linking:;
// being set to 'MacOSX' even though we've set the sysroot to the correct SDK (-Wincompatible-sysroot).
// This is because it is likely not using the SDK's toolchain Apple Clang but another one installed in the system.
switch (selected_subtarget) {
- case Subtarget_iOS:
+ case Subtarget_iPhone:
darwin_platform_name = "iPhoneOS";
darwin_xcrun_sdk_name = "iphoneos";
darwin_min_version_id = "ios";