From f06c78e82a1f49320addb014e6844d5322a58d27 Mon Sep 17 00:00:00 2001 From: tobil4sk Date: Sat, 27 Jan 2024 13:20:22 +0000 Subject: [PATCH] Set HXCPP_ARM64 by default when building on Apple Silicon Mac --- tools/platforms/MacPlatform.hx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/platforms/MacPlatform.hx b/tools/platforms/MacPlatform.hx index 4f80be65a..dbe8bf522 100644 --- a/tools/platforms/MacPlatform.hx +++ b/tools/platforms/MacPlatform.hx @@ -34,6 +34,7 @@ class MacPlatform extends PlatformTarget private var executableDirectory:String; private var executablePath:String; private var is64:Bool; + private var isArm64:Bool; private var targetType:String; public function new(command:String, _project:HXProject, targetFlags:Map) @@ -103,6 +104,8 @@ class MacPlatform extends PlatformTarget defaults.architectures = [X86]; case X64: defaults.architectures = [X64]; + case ARM64: + defaults.architectures = [ARM64]; default: defaults.architectures = []; } @@ -128,6 +131,10 @@ class MacPlatform extends PlatformTarget { is64 = true; } + if (architecture == Architecture.ARM64) + { + isArm64 = true; + } } if (project.targetFlags.exists("neko") || project.target != cast System.hostPlatform) @@ -270,6 +277,12 @@ class MacPlatform extends PlatformTarget haxeArgs.push("HXCPP_M64"); flags.push("-DHXCPP_M64"); } + else if (isArm64) + { + haxeArgs.push("-D"); + haxeArgs.push("HXCPP_ARM64"); + flags.push("-DHXCPP_ARM64"); + } if (!project.targetFlags.exists("static")) { @@ -379,11 +392,16 @@ class MacPlatform extends PlatformTarget } else { - if (!targetFlags.exists("32") && (command == "rebuild" || System.hostArchitecture == X64)) + if (!targetFlags.exists("32") && System.hostArchitecture == X64) { commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_M64"]); } + if (!targetFlags.exists("32") && System.hostArchitecture == ARM64) + { + commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_ARM64"]); + } + if (!targetFlags.exists("64") && (targetFlags.exists("32") || System.hostArchitecture == X86)) { commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_M32"]);