Browse Source

Build on Android targeting the arm64-v8a architecture by default

This speeds up iteration time and covers most customer devices
Sam Lantinga 1 year ago
parent
commit
8cf5dc9963
2 changed files with 20 additions and 8 deletions
  1. 7 6
      android-project/app/build.gradle
  2. 13 2
      build-scripts/androidbuildlibs.sh

+ 7 - 6
android-project/app/build.gradle

@@ -20,13 +20,14 @@ android {
         externalNativeBuild {
             ndkBuild {
                 arguments "APP_PLATFORM=android-16"
-                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
+                // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
+                abiFilters 'arm64-v8a'
+            }
+            cmake {
+                arguments "-DANDROID_APP_PLATFORM=android-16", "-DANDROID_STL=c++_static"
+                // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
+                abiFilters 'arm64-v8a'
             }
-            // cmake {
-            //     arguments "-DANDROID_APP_PLATFORM=android-16", "-DANDROID_STL=c++_static"
-            //     // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
-            //     abiFilters 'arm64-v8a'
-            // }
         }
     }
     buildTypes {

+ 13 - 2
build-scripts/androidbuildlibs.sh

@@ -29,6 +29,17 @@ obj=
 lib=
 ndk_args=
 
+# Allow overriding the ABI from the environment
+if [ "$APP_ABI" = "" ]; then
+    #APP_ABI="armeabi-v7a arm64-v8a x86 x86_64"
+    APP_ABI="arm64-v8a"
+fi
+
+# Allow overriding the platform from the environment
+if [ "$APP_PLATFORM" = "" ]; then
+    APP_PLATFORM=android-16
+fi
+
 # Allow an external caller to specify locations.
 for arg in $*; do
     if [ "${arg:0:8}" == "NDK_OUT=" ]; then
@@ -64,7 +75,7 @@ ndk-build \
     NDK_OUT=$obj \
     NDK_LIBS_OUT=$lib \
     APP_BUILD_SCRIPT=Android.mk \
-    APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" \
-    APP_PLATFORM=android-16 \
+    APP_ABI="$APP_ABI" \
+    APP_PLATFORM="$APP_PLATFORM" \
     APP_MODULES="SDL3" \
     $ndk_args