Bläddra i källkod

Allow Android Java shim to be built as an AAR

Cole Campbell 7 år sedan
förälder
incheckning
b401cfd915
1 ändrade filer med 33 tillägg och 9 borttagningar
  1. 33 9
      android-project/app/build.gradle

+ 33 - 9
android-project/app/build.gradle

@@ -1,10 +1,19 @@
-apply plugin: 'com.android.application'
+def buildAsLibrary = project.hasProperty('BUILD_AS_LIBRARY');
+def buildAsApplication = !buildAsLibrary
+if (buildAsApplication) {
+    apply plugin: 'com.android.application'
+}
+else {
+    apply plugin: 'com.android.library'
+}
 
 android {
     compileSdkVersion 16
     buildToolsVersion "26.0.1"
     defaultConfig {
-        applicationId "org.libsdl.app"
+        if (buildAsApplication) {
+            applicationId "org.libsdl.app"
+        }
         minSdkVersion 14
         targetSdkVersion 16
         versionCode 1
@@ -22,17 +31,32 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
-    sourceSets.main {
-        jniLibs.srcDir 'libs'
-    }
-    externalNativeBuild {
-        ndkBuild {
-            path 'jni/Android.mk'
+    if (!project.hasProperty('EXCLUDE_NATIVE_LIBS')) {
+        sourceSets.main {
+            jniLibs.srcDir 'libs'
+        }
+        externalNativeBuild {
+            ndkBuild {
+                path 'jni/Android.mk'
+            }
         }
+       
     }
     lintOptions {
         abortOnError false
     }
+    
+    if (buildAsLibrary) {
+        libraryVariants.all { variant ->
+            variant.outputs.each { output ->
+                def outputFile = output.outputFile
+                if (outputFile != null && outputFile.name.endsWith(".aar")) {
+                    def fileName = "org.libsdl.app.aar";
+                    output.outputFile = new File(outputFile.parent, fileName);
+                }
+            }
+        }
+    }
 }
 
 dependencies {
@@ -41,4 +65,4 @@ dependencies {
         exclude group: 'com.android.support', module: 'support-annotations'
     })
     testCompile 'junit:junit:4.12'
-}
+}