Android: Allow minimumSDKVersion to be set dynamically

This change moves away from purely hard coding the minimum sdk version for android and also correctly sets the PLATFORM_NUMBER define. The gcc toolchain is no longer compatible in lime 8.3.x+ so, we shouldn't have to worry about the PLATFORM define at all.

It might be wise to enforce a baseline minimum version and complain if users try to use something lower than the default.
This commit is contained in:
Chris Speciale
2025-03-13 02:24:30 -04:00
committed by GitHub
parent 8d21626297
commit 46aab0c80e

View File

@@ -161,8 +161,9 @@ class AndroidPlatform extends PlatformTarget
for (architecture in architectures)
{
var haxeParams = [hxml, "-D", "android", "-D", "PLATFORM=android-28"];
var cppParams = ["-Dandroid", "-DPLATFORM=android-28"];
var minSDKVer = project.config.getInt("android.minimum-sdk-version", 28);
var haxeParams = [hxml, "-D", "android", "-D", 'PLATFORM_NUMBER=$minSDKVer'];
var cppParams = ["-Dandroid", '-DPLATFORM_NUMBER=$minSDKVer'];
var path = sourceSet + "/jniLibs/armeabi";
var suffix = ".so";
@@ -370,14 +371,16 @@ class AndroidPlatform extends PlatformTarget
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 = [];
if (armv5) commands.push(["-Dandroid", "-DPLATFORM=android-28"]);
if (armv7) commands.push(["-Dandroid", "-DHXCPP_ARMV7", "-DPLATFORM=android-28"]);
if (arm64) commands.push(["-Dandroid", "-DHXCPP_ARM64", "-DPLATFORM=android-28"]);
if (x86) commands.push(["-Dandroid", "-DHXCPP_X86", "-DPLATFORM=android-28"]);
if (x64) commands.push(["-Dandroid", "-DHXCPP_X86_64", "-DPLATFORM=android-28"]);
var minSDKVer = project.config.getInt("android.minimum-sdk-version", 28);
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]);
CPPHelper.rebuild(project, commands);
}