From b401cfd915d9656f8898b1fdf82fce2d73630400 Mon Sep 17 00:00:00 2001 From: Cole Campbell Date: Tue, 9 Jan 2018 19:11:34 -0500 Subject: [PATCH] Allow Android Java shim to be built as an AAR --- android-project/app/build.gradle | 42 +++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/android-project/app/build.gradle b/android-project/app/build.gradle index ed2dc7a56..3fe554067 100644 --- a/android-project/app/build.gradle +++ b/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' -} +} \ No newline at end of file