From 9cdfc47a505e356a41433d367a30e09bf1ae8360 Mon Sep 17 00:00:00 2001 From: tobil4sk Date: Thu, 27 Jun 2024 06:49:59 +0100 Subject: [PATCH] Check HXCPP_ARCH before defaulting to host arch (#1122) * Check HXCPP_ARCH before defaulting to host arch Right now HXCPP_ARCH is ignored, which means you can get situations where `HXCPP_ARM64` is set but the architecture is x86_64 so you may end up with a broken build. * Fix formatting --- tools/hxcpp/BuildTool.hx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tools/hxcpp/BuildTool.hx b/tools/hxcpp/BuildTool.hx index 2109279f4..a98a00361 100644 --- a/tools/hxcpp/BuildTool.hx +++ b/tools/hxcpp/BuildTool.hx @@ -137,12 +137,23 @@ class BuildTool var otherArmArchitecture = mDefines.exists("HXCPP_ARMV6") || mDefines.exists("HXCPP_ARMV7") || mDefines.exists("HXCPP_ARMV7S"); if (m64==m32 && !arm64 && !otherArmArchitecture) { - var arch = getArch(); + var arch = mDefines.get("HXCPP_ARCH"); + if (arch!=null) + { + m64 = arch=="x86_64"; + m32 = arch=="x86"; + arm64 = arch=="arm64"; + } + else + { + var hostArch = getArch(); + + // Default to the current OS version. windowsArm runs m32 code too + m64 = hostArch=="m64"; + m32 = hostArch=="m32"; + arm64 = hostArch=="arm64"; + } - // Default to the current OS version. windowsArm runs m32 code too - m64 = arch=="m64"; - m32 = arch=="m32"; - arm64 = arch=="arm64"; mDefines.remove(m32 ? "HXCPP_M64" : "HXCPP_M32"); set64(mDefines,m64,arm64); }