From 2ed24d5311349c4627dfffcab5b13f37d2323695 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Tue, 24 Dec 2013 15:28:24 -0600 Subject: [PATCH] [Android] Fix the gradle build system to allow for building from terminal. It will now copy the library files correctly and sign the resulting apk. --- Source/Android/build.gradle | 85 ++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 30 deletions(-) diff --git a/Source/Android/build.gradle b/Source/Android/build.gradle index 4307c65824..a262d6043c 100644 --- a/Source/Android/build.gradle +++ b/Source/Android/build.gradle @@ -1,42 +1,67 @@ buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath 'com.android.tools.build:gradle:0.5.+' - } + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } } apply plugin: 'android' dependencies { - compile fileTree(dir: 'libs', include: '*.jar') + compile fileTree(dir: 'libs', include: '*.jar') + compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') } android { - compileSdkVersion 18 - buildToolsVersion "18.0.1" + compileSdkVersion 19 + buildToolsVersion "19.0.1" - sourceSets { - main { - manifest.srcFile 'AndroidManifest.xml' - java.srcDirs = ['src'] - resources.srcDirs = ['src'] - aidl.srcDirs = ['src'] - renderscript.srcDirs = ['src'] - res.srcDirs = ['res'] - assets.srcDirs = ['assets'] - } + task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs') { + destinationDir file("$buildDir/native-libs") + baseName 'native-libs' + extension 'jar' + from fileTree(dir: 'libs', include: '**/*.so') + into 'lib/' + } - // Move the tests to tests/java, tests/res, etc... - instrumentTest.setRoot('tests') + tasks.withType(Compile) { + compileTask -> compileTask.dependsOn(nativeLibsToJar) + } + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + } - // Move the build types to build-types/ - // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... - // This moves them out of them default location under src//... which would - // conflict with src/ being used by the main source set. - // Adding new build types or product flavors should be accompanied - // by a similar customization. - debug.setRoot('build-types/debug') - release.setRoot('build-types/release') - } + // Move the tests to tests/java, tests/res, etc... + instrumentTest.setRoot('tests') + + // Move the build types to build-types/ + // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... + // This moves them out of them default location under src//... which would + // conflict with src/ being used by the main source set. + // Adding new build types or product flavors should be accompanied + // by a similar customization. + debug.setRoot('build-types/debug') + release.setRoot('build-types/release') + } + signingConfigs { + release { + storeFile file(System.getenv("KEYSTORE")) + storePassword System.getenv("KEYSTORE_PASSWORD") + keyAlias System.getenv("KEY_ALIAS") + keyPassword System.getenv("KEY_PASSWORD") + } + } + buildTypes { + release { + signingConfig signingConfigs.release + } + } }