Browse Source

Updating the minimum Android target api for proper Vulkan support

Fredia Huya-Kouadio 2 years ago
parent
commit
2aba13e8fb

+ 17 - 8
platform/android/detect.py

@@ -24,7 +24,11 @@ def can_build():
 def get_opts():
 def get_opts():
     return [
     return [
         ("ANDROID_SDK_ROOT", "Path to the Android SDK", get_env_android_sdk_root()),
         ("ANDROID_SDK_ROOT", "Path to the Android SDK", get_env_android_sdk_root()),
-        ("ndk_platform", 'Target platform (android-<api>, e.g. "android-24")', "android-24"),
+        (
+            "ndk_platform",
+            'Target platform (android-<api>, e.g. "android-' + str(get_min_target_api()) + '")',
+            "android-" + str(get_min_target_api()),
+        ),
     ]
     ]
 
 
 
 
@@ -46,6 +50,11 @@ def get_ndk_version():
     return "23.2.8568313"
     return "23.2.8568313"
 
 
 
 
+# This is kept in sync with the value in 'platform/android/java/app/config.gradle'.
+def get_min_target_api():
+    return 21
+
+
 def get_flags():
 def get_flags():
     return [
     return [
         ("arch", "arm64"),  # Default for convenience.
         ("arch", "arm64"),  # Default for convenience.
@@ -87,18 +96,18 @@ def configure(env: "Environment"):
         )
         )
         sys.exit()
         sys.exit()
 
 
+    if get_min_sdk_version(env["ndk_platform"]) < get_min_target_api():
+        print(
+            "WARNING: minimum supported Android target api is %d. Forcing target api %d."
+            % (get_min_target_api(), get_min_target_api())
+        )
+        env["ndk_platform"] = "android-" + str(get_min_target_api())
+
     install_ndk_if_needed(env)
     install_ndk_if_needed(env)
     ndk_root = env["ANDROID_NDK_ROOT"]
     ndk_root = env["ANDROID_NDK_ROOT"]
 
 
     # Architecture
     # Architecture
 
 
-    if get_min_sdk_version(env["ndk_platform"]) < 21 and env["arch"] in ["x86_64", "arm64"]:
-        print(
-            'WARNING: arch="%s" is not supported with "ndk_platform" lower than "android-21". Forcing platform 21.'
-            % env["arch"]
-        )
-        env["ndk_platform"] = "android-21"
-
     if env["arch"] == "arm32":
     if env["arch"] == "arm32":
         target_triple = "armv7a-linux-androideabi"
         target_triple = "armv7a-linux-androideabi"
     elif env["arch"] == "arm64":
     elif env["arch"] == "arm64":

+ 1 - 1
platform/android/export/export_plugin.cpp

@@ -245,7 +245,7 @@ static const int EXPORT_FORMAT_AAB = 1;
 static const char *APK_ASSETS_DIRECTORY = "res://android/build/assets";
 static const char *APK_ASSETS_DIRECTORY = "res://android/build/assets";
 static const char *AAB_ASSETS_DIRECTORY = "res://android/build/assetPacks/installTime/src/main/assets";
 static const char *AAB_ASSETS_DIRECTORY = "res://android/build/assetPacks/installTime/src/main/assets";
 
 
-static const int DEFAULT_MIN_SDK_VERSION = 19; // Should match the value in 'platform/android/java/app/config.gradle#minSdk'
+static const int DEFAULT_MIN_SDK_VERSION = 21; // Should match the value in 'platform/android/java/app/config.gradle#minSdk'
 static const int DEFAULT_TARGET_SDK_VERSION = 32; // Should match the value in 'platform/android/java/app/config.gradle#targetSdk'
 static const int DEFAULT_TARGET_SDK_VERSION = 32; // Should match the value in 'platform/android/java/app/config.gradle#targetSdk'
 
 
 #ifndef ANDROID_ENABLED
 #ifndef ANDROID_ENABLED

+ 6 - 3
platform/android/java/app/config.gradle

@@ -1,14 +1,17 @@
 ext.versions = [
 ext.versions = [
     androidGradlePlugin: '7.2.1',
     androidGradlePlugin: '7.2.1',
     compileSdk         : 32,
     compileSdk         : 32,
-    minSdk             : 19, // Also update 'platform/android/export/export_plugin.cpp#DEFAULT_MIN_SDK_VERSION'
-    targetSdk          : 32, // Also update 'platform/android/export/export_plugin.cpp#DEFAULT_TARGET_SDK_VERSION'
+    // Also update 'platform/android/export/export_plugin.cpp#DEFAULT_MIN_SDK_VERSION'
+    minSdk             : 21,
+    // Also update 'platform/android/export/export_plugin.cpp#DEFAULT_TARGET_SDK_VERSION'
+    targetSdk          : 32,
     buildTools         : '32.0.0',
     buildTools         : '32.0.0',
     kotlinVersion      : '1.7.0',
     kotlinVersion      : '1.7.0',
     fragmentVersion    : '1.3.6',
     fragmentVersion    : '1.3.6',
     nexusPublishVersion: '1.1.0',
     nexusPublishVersion: '1.1.0',
     javaVersion        : 11,
     javaVersion        : 11,
-    ndkVersion         : '23.2.8568313' // Also update 'platform/android/detect.py#get_ndk_version()' when this is updated.
+    // Also update 'platform/android/detect.py#get_ndk_version()' when this is updated.
+    ndkVersion         : '23.2.8568313'
 
 
 ]
 ]
 
 

+ 1 - 1
platform/android/java/nativeSrcsConfigs/CMakeLists.txt

@@ -17,4 +17,4 @@ target_include_directories(${PROJECT_NAME}
         SYSTEM PUBLIC
         SYSTEM PUBLIC
         ${GODOT_ROOT_DIR})
         ${GODOT_ROOT_DIR})
 
 
-add_definitions(-DUNIX_ENABLED -DVULKAN_ENABLED -DANDROID_ENABLED -DGLES3_ENABLED)
+add_definitions(-DUNIX_ENABLED -DVULKAN_ENABLED -DANDROID_ENABLED -DGLES3_ENABLED -DTOOLS_ENABLED)