From b0157b09fe420de3a674d3f55457fbc589350b5a Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:58:19 +0200 Subject: [PATCH 1/4] Remove `armv7` from compilation by default. --- include.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/include.xml b/include.xml index 52b1cb9015..e7bd3bc092 100644 --- a/include.xml +++ b/include.xml @@ -110,8 +110,6 @@ - -
From 037daa229f7f6cde4b13690a3097b7286015e2fe Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Fri, 14 Mar 2025 12:22:27 +0200 Subject: [PATCH 2/4] Remove `armv5` and adjust the architectures to properly rebuild. --- tools/platforms/AndroidPlatform.hx | 80 +++++++++++------------------- 1 file changed, 30 insertions(+), 50 deletions(-) diff --git a/tools/platforms/AndroidPlatform.hx b/tools/platforms/AndroidPlatform.hx index c6f57da7ca..ca80ced247 100644 --- a/tools/platforms/AndroidPlatform.hx +++ b/tools/platforms/AndroidPlatform.hx @@ -135,20 +135,17 @@ class AndroidPlatform extends PlatformTarget var hxml = targetDirectory + "/haxe/" + buildType + ".hxml"; var sourceSet = destination + "/app/src/main"; - var hasARMV5 = (ArrayTools.containsValue(project.architectures, Architecture.ARMV5) - || ArrayTools.containsValue(project.architectures, Architecture.ARMV6)); - var hasARMV7 = ArrayTools.containsValue(project.architectures, Architecture.ARMV7); var hasARM64 = ArrayTools.containsValue(project.architectures, Architecture.ARM64); - var hasX86 = ArrayTools.containsValue(project.architectures, Architecture.X86); + var hasARMV7 = ArrayTools.containsValue(project.architectures, Architecture.ARMV7); var hasX64 = ArrayTools.containsValue(project.architectures, Architecture.X64); + var hasX86 = ArrayTools.containsValue(project.architectures, Architecture.X86); var architectures = []; - if (hasARMV5) architectures.push(Architecture.ARMV5); - if (hasARMV7) architectures.push(Architecture.ARMV7); if (hasARM64) architectures.push(Architecture.ARM64); - if (hasX86) architectures.push(Architecture.X86); + if (hasARMV7) architectures.push(Architecture.ARMV7); if (hasX64) architectures.push(Architecture.X64); + if (hasX86) architectures.push(Architecture.X86); if (architectures.length == 0) { @@ -164,18 +161,10 @@ class AndroidPlatform extends PlatformTarget var minSDKVer = project.config.getInt("android.minimum-sdk-version", 21); var haxeParams = [hxml, "-D", "android", "-D", 'PLATFORM_NUMBER=$minSDKVer']; var cppParams = ["-Dandroid", '-DPLATFORM_NUMBER=$minSDKVer']; - var path = sourceSet + "/jniLibs/armeabi"; + var path = sourceSet + "/jniLibs/"; var suffix = ".so"; - if (architecture == Architecture.ARMV7) - { - haxeParams.push("-D"); - haxeParams.push("HXCPP_ARMV7"); - cppParams.push("-DHXCPP_ARMV7"); - path = sourceSet + "/jniLibs/armeabi-v7a"; - suffix = "-v7.so"; - } - else if (architecture == Architecture.ARM64) + if (architecture == Architecture.ARM64) { haxeParams.push("-D"); haxeParams.push("HXCPP_ARM64"); @@ -183,13 +172,13 @@ class AndroidPlatform extends PlatformTarget path = sourceSet + "/jniLibs/arm64-v8a"; suffix = "-64.so"; } - else if (architecture == Architecture.X86) + else if (architecture == Architecture.ARMV7) { haxeParams.push("-D"); - haxeParams.push("HXCPP_X86"); - cppParams.push("-DHXCPP_X86"); - path = sourceSet + "/jniLibs/x86"; - suffix = "-x86.so"; + haxeParams.push("HXCPP_ARMV7"); + cppParams.push("-DHXCPP_ARMV7"); + path = sourceSet + "/jniLibs/armeabi-v7a"; + suffix = "-v7.so"; } else if (architecture == Architecture.X64) { @@ -199,6 +188,14 @@ class AndroidPlatform extends PlatformTarget path = sourceSet + "/jniLibs/x86_64"; suffix = "-x86_64.so"; } + else if (architecture == Architecture.X86) + { + haxeParams.push("-D"); + haxeParams.push("HXCPP_X86"); + cppParams.push("-DHXCPP_X86"); + path = sourceSet + "/jniLibs/x86"; + suffix = "-x86.so"; + } for (ndll in project.ndlls) { @@ -214,11 +211,11 @@ class AndroidPlatform extends PlatformTarget System.copyIfNewer(targetDirectory + "/obj/libApplicationMain" + (project.debug ? "-debug" : "") + suffix, path + "/libApplicationMain.so"); } - if (!hasARMV5) + if (!hasARM64) { - if (FileSystem.exists(sourceSet + "/jniLibs/armeabi")) + if (FileSystem.exists(sourceSet + "/jniLibs/arm64-v8a")) { - System.removeDirectory(sourceSet + "/jniLibs/armeabi"); + System.removeDirectory(sourceSet + "/jniLibs/arm64-v8a"); } } @@ -230,11 +227,11 @@ class AndroidPlatform extends PlatformTarget } } - if (!hasARM64) + if (!hasX64) { - if (FileSystem.exists(sourceSet + "/jniLibs/arm64-v8a")) + if (FileSystem.exists(sourceSet + "/jniLibs/x86_64")) { - System.removeDirectory(sourceSet + "/jniLibs/arm64-v8a"); + System.removeDirectory(sourceSet + "/jniLibs/x86_64"); } } @@ -246,14 +243,6 @@ class AndroidPlatform extends PlatformTarget } } - if (!hasX64) - { - if (FileSystem.exists(sourceSet + "/jniLibs/x86_64")) - { - System.removeDirectory(sourceSet + "/jniLibs/x86_64"); - } - } - if (noOutput) return; AndroidHelper.build(project, destination); @@ -364,23 +353,14 @@ class AndroidPlatform extends PlatformTarget public override function rebuild():Void { - var armv5 = (/*command == "rebuild" ||*/ - ArrayTools.containsValue(project.architectures, Architecture.ARMV5) - || ArrayTools.containsValue(project.architectures, Architecture.ARMV6)); - var armv7 = (command == "rebuild" || ArrayTools.containsValue(project.architectures, Architecture.ARMV7)); - var arm64 = (command == "rebuild" || ArrayTools.containsValue(project.architectures, Architecture.ARM64)); - var x86 = (ArrayTools.containsValue(project.architectures, Architecture.X86)); - var x64 = (command == "rebuild" || ArrayTools.containsValue(project.architectures, Architecture.X64)); - var commands = []; var minSDKVer = 21; var platformDefine = '-DPLATFORM_NUMBER=$minSDKVer'; - - if (armv5) commands.push(["-Dandroid", platformDefine]); - if (armv7) commands.push(["-Dandroid", "-DHXCPP_ARMV7", platformDefine]); - if (arm64) commands.push(["-Dandroid", "-DHXCPP_ARM64", platformDefine]); - if (x86) commands.push(["-Dandroid", "-DHXCPP_X86", platformDefine]); - if (x64) commands.push(["-Dandroid", "-DHXCPP_X86_64", platformDefine]); + + commands.push(["-Dandroid", "-DHXCPP_ARM64", platformDefine]); + commands.push(["-Dandroid", "-DHXCPP_ARMV7", platformDefine]); + commands.push(["-Dandroid", "-DHXCPP_X86_64", platformDefine]); + commands.push(["-Dandroid", "-DHXCPP_X86", platformDefine]); CPPHelper.rebuild(project, commands); } From eac6197c5c9003a41aa66ad22f0fbc370ff89237 Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:06:05 +0200 Subject: [PATCH 3/4] Some adjustments --- tools/platforms/AndroidPlatform.hx | 71 ++++++++++++++++-------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/tools/platforms/AndroidPlatform.hx b/tools/platforms/AndroidPlatform.hx index ca80ced247..6074f277e4 100644 --- a/tools/platforms/AndroidPlatform.hx +++ b/tools/platforms/AndroidPlatform.hx @@ -135,17 +135,17 @@ class AndroidPlatform extends PlatformTarget var hxml = targetDirectory + "/haxe/" + buildType + ".hxml"; var sourceSet = destination + "/app/src/main"; - var hasARM64 = ArrayTools.containsValue(project.architectures, Architecture.ARM64); var hasARMV7 = ArrayTools.containsValue(project.architectures, Architecture.ARMV7); - var hasX64 = ArrayTools.containsValue(project.architectures, Architecture.X64); + var hasARM64 = ArrayTools.containsValue(project.architectures, Architecture.ARM64); var hasX86 = ArrayTools.containsValue(project.architectures, Architecture.X86); + var hasX64 = ArrayTools.containsValue(project.architectures, Architecture.X64); var architectures = []; - if (hasARM64) architectures.push(Architecture.ARM64); if (hasARMV7) architectures.push(Architecture.ARMV7); - if (hasX64) architectures.push(Architecture.X64); + if (hasARM64) architectures.push(Architecture.ARM64); if (hasX86) architectures.push(Architecture.X86); + if (hasX64) architectures.push(Architecture.X64); if (architectures.length == 0) { @@ -164,15 +164,7 @@ class AndroidPlatform extends PlatformTarget var path = sourceSet + "/jniLibs/"; var suffix = ".so"; - if (architecture == Architecture.ARM64) - { - haxeParams.push("-D"); - haxeParams.push("HXCPP_ARM64"); - cppParams.push("-DHXCPP_ARM64"); - path = sourceSet + "/jniLibs/arm64-v8a"; - suffix = "-64.so"; - } - else if (architecture == Architecture.ARMV7) + if (architecture == Architecture.ARMV7) { haxeParams.push("-D"); haxeParams.push("HXCPP_ARMV7"); @@ -180,13 +172,13 @@ class AndroidPlatform extends PlatformTarget path = sourceSet + "/jniLibs/armeabi-v7a"; suffix = "-v7.so"; } - else if (architecture == Architecture.X64) + else if (architecture == Architecture.ARM64) { haxeParams.push("-D"); - haxeParams.push("HXCPP_X86_64"); - cppParams.push("-DHXCPP_X86_64"); - path = sourceSet + "/jniLibs/x86_64"; - suffix = "-x86_64.so"; + haxeParams.push("HXCPP_ARM64"); + cppParams.push("-DHXCPP_ARM64"); + path = sourceSet + "/jniLibs/arm64-v8a"; + suffix = "-64.so"; } else if (architecture == Architecture.X86) { @@ -196,6 +188,14 @@ class AndroidPlatform extends PlatformTarget path = sourceSet + "/jniLibs/x86"; suffix = "-x86.so"; } + else if (architecture == Architecture.X64) + { + haxeParams.push("-D"); + haxeParams.push("HXCPP_X86_64"); + cppParams.push("-DHXCPP_X86_64"); + path = sourceSet + "/jniLibs/x86_64"; + suffix = "-x86_64.so"; + } for (ndll in project.ndlls) { @@ -211,14 +211,6 @@ class AndroidPlatform extends PlatformTarget System.copyIfNewer(targetDirectory + "/obj/libApplicationMain" + (project.debug ? "-debug" : "") + suffix, path + "/libApplicationMain.so"); } - if (!hasARM64) - { - if (FileSystem.exists(sourceSet + "/jniLibs/arm64-v8a")) - { - System.removeDirectory(sourceSet + "/jniLibs/arm64-v8a"); - } - } - if (!hasARMV7) { if (FileSystem.exists(sourceSet + "/jniLibs/armeabi-v7a")) @@ -227,11 +219,11 @@ class AndroidPlatform extends PlatformTarget } } - if (!hasX64) + if (!hasARM64) { - if (FileSystem.exists(sourceSet + "/jniLibs/x86_64")) + if (FileSystem.exists(sourceSet + "/jniLibs/arm64-v8a")) { - System.removeDirectory(sourceSet + "/jniLibs/x86_64"); + System.removeDirectory(sourceSet + "/jniLibs/arm64-v8a"); } } @@ -243,6 +235,14 @@ class AndroidPlatform extends PlatformTarget } } + if (!hasX64) + { + if (FileSystem.exists(sourceSet + "/jniLibs/x86_64")) + { + System.removeDirectory(sourceSet + "/jniLibs/x86_64"); + } + } + if (noOutput) return; AndroidHelper.build(project, destination); @@ -353,14 +353,19 @@ class AndroidPlatform extends PlatformTarget public override function rebuild():Void { + var armv7 = ArrayTools.containsValue(project.architectures, Architecture.ARMV7); + var arm64 = (command == "rebuild" || ArrayTools.containsValue(project.architectures, Architecture.ARM64)); + var x86 = ArrayTools.containsValue(project.architectures, Architecture.X86); + var x64 = ArrayTools.containsValue(project.architectures, Architecture.X64); + var commands = []; var minSDKVer = 21; var platformDefine = '-DPLATFORM_NUMBER=$minSDKVer'; - commands.push(["-Dandroid", "-DHXCPP_ARM64", platformDefine]); - commands.push(["-Dandroid", "-DHXCPP_ARMV7", platformDefine]); - commands.push(["-Dandroid", "-DHXCPP_X86_64", platformDefine]); - commands.push(["-Dandroid", "-DHXCPP_X86", platformDefine]); + if (armv7) commands.push(["-Dandroid", "-DHXCPP_ARMV7", platformDefine]); + if (arm64) commands.push(["-Dandroid", "-DHXCPP_ARM64", platformDefine]); + if (x86) commands.push(["-Dandroid", "-DHXCPP_X86", platformDefine]); + if (x64) commands.push(["-Dandroid", "-DHXCPP_X86_64", platformDefine]); CPPHelper.rebuild(project, commands); } From 1545200e7dec9c06de88ba93a96ff1c14ad7a317 Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:13:26 +0200 Subject: [PATCH 4/4] Compile `x86_64` when rebuilding lime. --- tools/platforms/AndroidPlatform.hx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/platforms/AndroidPlatform.hx b/tools/platforms/AndroidPlatform.hx index 6074f277e4..9f59ec68fa 100644 --- a/tools/platforms/AndroidPlatform.hx +++ b/tools/platforms/AndroidPlatform.hx @@ -356,7 +356,7 @@ class AndroidPlatform extends PlatformTarget var armv7 = ArrayTools.containsValue(project.architectures, Architecture.ARMV7); var arm64 = (command == "rebuild" || ArrayTools.containsValue(project.architectures, Architecture.ARM64)); var x86 = ArrayTools.containsValue(project.architectures, Architecture.X86); - var x64 = ArrayTools.containsValue(project.architectures, Architecture.X64); + var x64 = (command == "rebuild" || ArrayTools.containsValue(project.architectures, Architecture.X64)); var commands = []; var minSDKVer = 21;