From a42eb41898c4c84d04ca519b0dd0aec55398383c Mon Sep 17 00:00:00 2001 From: "Enzo Persillet (Tutez)" Date: Sat, 28 Mar 2026 22:58:05 +0100 Subject: [PATCH] Expose architecture defines during Project XML parsing --- src/lime/tools/HXProject.hx | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/lime/tools/HXProject.hx b/src/lime/tools/HXProject.hx index cceb84f646..0c35e22b96 100644 --- a/src/lime/tools/HXProject.hx +++ b/src/lime/tools/HXProject.hx @@ -829,6 +829,7 @@ class HXProject extends Script defines.set(Std.string(target).toLowerCase(), "1"); defines.set("target", Std.string(target).toLowerCase()); defines.set("platform", defines.get("target")); + initializeArchitectureDefines(); switch (System.hostPlatform) { @@ -849,6 +850,51 @@ class HXProject extends Script defines.set("hxp", "1"); // TODO: Version? } + private function initializeArchitectureDefines():Void + { + var architecture:Architecture = null; + + if (targetFlags.exists("arm64")) + { + architecture = ARM64; + } + else if (targetFlags.exists("64") || targetFlags.exists("x86_64")) + { + architecture = X64; + } + else if (targetFlags.exists("32") || targetFlags.exists("x86_32")) + { + architecture = X86; + } + else if (defines.exists("native")) + { + architecture = switch (System.hostArchitecture) + { + case ARM64: ARM64; + case X64: X64; + case X86: X86; + default: null; + } + } + + switch (architecture) + { + case ARM64: + defines.set("64", "1"); + defines.set("arm64", "1"); + defines.set("HXCPP_ARM64", "1"); + case X64: + defines.set("64", "1"); + defines.set("x86_64", "1"); + defines.set("HXCPP_M64", "1"); + case X86: + defines.set("32", "1"); + defines.set("x86_32", "1"); + defines.set("HXCPP_M32", "1"); + default: + } + } + private static function initializeStatics():Void { if (!initialized)