From ceb69140b064280fe545b022ee8832fb0436fe90 Mon Sep 17 00:00:00 2001 From: Josh Tynjala Date: Thu, 18 Sep 2025 09:30:14 -0700 Subject: [PATCH] BuildTool: Fix xcodebuild: error: SDK macosx26 cannot be located. My SDKs directory contains three entries: MacOSX.sdk MacOSX26.0.sdk MacOSX26.sdk The current SDK version detection in hxcpp is preferring MacOSX26.sdk over MacOSX26.0.sdk. This is causing MACOSX_VER to be set to 26. However, xcodebuild seems to want both major and minor parts of the version to be specified, so MACOSX_VER should be set to 26.0 instead. This change checks if the current best's minor version is parsed as NaN when the major versions match, which results in a real float value for the minor version to be preferred. --- tools/hxcpp/BuildTool.hx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/hxcpp/BuildTool.hx b/tools/hxcpp/BuildTool.hx index 4e4dfb89b..be962c004 100644 --- a/tools/hxcpp/BuildTool.hx +++ b/tools/hxcpp/BuildTool.hx @@ -2205,7 +2205,13 @@ class BuildTool var ver = extract_version.matched(1); var split_best = best.split("."); var split_ver = ver.split("."); - if (Std.parseFloat(split_ver[0]) > Std.parseFloat(split_best[0]) || Std.parseFloat(split_ver[1]) > Std.parseFloat(split_best[1])) + var major_ver = Std.parseFloat(split_ver[0]); + var minor_ver = Std.parseFloat(split_ver[1]); + var major_best = Std.parseFloat(split_best[0]); + var minor_best = Std.parseFloat(split_best[1]); + if (major_ver == major_best && Math.isNaN(minor_best)) + best = ver; + else if (major_ver > major_best || minor_ver > minor_best) best = ver; } }