aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2026-02-02 18:46:18 +0000
committerGitHub <noreply@github.com>2026-02-02 18:46:18 +0000
commitf3daaa62fe277fd94eee592380d65647f0b202d8 (patch)
treeec2139dd297b765cdf13d554ae0c5bee8578f702 /src/build_settings.cpp
parent6a07f70c1c1081374faeee2eabe53d23805ea529 (diff)
parentafbbb829eac29e90ba693730641b586194cbef74 (diff)
Merge pull request #6220 from laytan/fix-lto-macos
fix LTO on MacOS
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index ded51c420..a7928721a 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -1728,6 +1728,29 @@ gb_internal char *token_pos_to_string(TokenPos const &pos) {
return s;
}
+gb_internal String normalize_minimum_os_version_string(String version) {
+ GB_ASSERT(version.len > 0);
+
+ gbString normalized = gb_string_make(permanent_allocator(), "");
+
+ int granularity = 0;
+ String_Iterator it = {version, 0};
+ for (;; granularity++) {
+ String str = string_split_iterator(&it, '.');
+ if (str == "") break;
+ if (granularity > 0) {
+ normalized = gb_string_appendc(normalized, ".");
+ }
+ normalized = gb_string_append_length(normalized, str.text, str.len);
+ }
+
+ for (; granularity < 3; granularity++) {
+ normalized = gb_string_appendc(normalized, ".0");
+ }
+
+ return make_string_c(normalized);
+}
+
gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subtarget) {
BuildContext *bc = &build_context;
@@ -1997,10 +2020,12 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
} 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");
+ bc->minimum_os_version_string = str_lit("17.4.0");
}
}
+ bc->minimum_os_version_string = normalize_minimum_os_version_string(bc->minimum_os_version_string);
+
if (subtarget == Subtarget_iPhoneSimulator) {
// For the iPhoneSimulator subtarget, the version must be between 'ios' and '-simulator'.
String suffix = str_lit("-simulator");