diff --git a/tools/hxcpp/BuildTool.hx b/tools/hxcpp/BuildTool.hx index 15339a9a9..b2e76b9d6 100644 --- a/tools/hxcpp/BuildTool.hx +++ b/tools/hxcpp/BuildTool.hx @@ -136,12 +136,20 @@ class BuildTool arm64 = mDefines.exists("HXCPP_ARM64"); if (m64==m32 && !arm64) { - 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); }