BobStore/build.gradle
Daniel Martí 2f9c3b8056 Switch to java 1.7
Taken from the gradle plugin user guide:

With Android KitKat (buildToolsVersion 19) you can use the diamond operator,
multi-catch, strings in switches, try with resources, etc.

Note that you can use minSdkVersion with a value earlier than 19, for all
language features except try with resources. If you want to use try with
resources, you will need to also use a minSdkVersion of 19.

You also need to make sure that Gradle is using version 1.7 or later of the
JDK. (And version 0.6.1 or later of the Android Gradle plugin.)
2014-06-05 10:32:57 +02:00

174 lines
4.8 KiB
Groovy

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.0'
}
}
apply plugin: 'android'
def toolVersion = "19.1"
sdkLoc = getSdkPath()
FileCollection getAndroidPrebuilt(String apiLevel) {
files("$sdkLoc/platforms/android-$apiLevel/android.jar")
}
dependencies {
compile project(':support-v4')
compile project(':support-appcompat-v7')
compile project(':extern:AndroidPinning')
compile project(':extern:UniversalImageLoader:library')
compile project(':extern:MemorizingTrustManager')
compile project(':extern:libsuperuser:libsuperuser')
compile project(':extern:nanohttpd:core')
compile project(':extern:jmdns')
compile project(':extern:zipsigner')
compile project(':extern:zxing-core')
compile( project(':extern:android-support-v4-preferencefragment') ) {
exclude module: 'support-v4'
}
}
project(':extern:UniversalImageLoader:library') {
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.0'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 16
buildToolsVersion toolVersion
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
}
project(':extern:zipsigner') {
apply plugin: 'java'
dependencies {
compile project(':extern:spongycastle:core')
compile project(':extern:spongycastle:pkix')
compile project(':extern:spongycastle:prov')
}
}
android {
compileSdkVersion 19
buildToolsVersion toolVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('test')
}
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
tasks.withType(Compile) { task ->
options.encoding = "UTF-8"
}
}
// TODO: This person took the example code below from another blogpost online, however
// I lost the reference to it:
// http://stackoverflow.com/questions/23297562/gradle-javadoc-and-android-documentation
android.applicationVariants.all { variant ->
task("generate${variant.name}Javadoc", type: Javadoc) {
title = "$name $version API"
description "Generates Javadoc for F-Droid."
source = variant.javaCompile.source
ext.androidJar = "$sdkLoc/platforms/${android.compileSdkVersion}/android.jar"
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.links("http://d.android.com/reference/");
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
}
subprojects {
// The support-v4 library assumes certain things are defined in the
// root project (which is usually the android-support project, but
// this time it is the F-Droid project.
if (project.name.equals("support-v4")) {
apply plugin: 'maven'
rootProject.ext.supportRepoOut = ""
}
// This is the hacky way which we force the subprojects to use the same build tools:
// http://stackoverflow.com/a/21032272
afterEvaluate {
android {
// The android build task only lets you configure the buildToolsVersion once, so if
// we execute the closure below to configure our subprojects, it will fail when it
// hits the second subproject. Therefore, we will only do it once, and I guess the
// android plubin will re-use the existing value I set.
// https://android.googlesource.com/platform/tools/build/+/master/gradle/src/main/groovy/com/android/build/gradle/BaseExtension.groovy
try {
buildToolsVersion toolVersion
logger.info("Set buildToolsVersion to $toolVersion")
} catch (GradleException e) {
logger.info("Tried to set the buildToolsVersion, however we were not allowed to: $e.message")
}
}
}
}
/**
* Currently a bit hacky, because android.plugin is protected.
* The end goal is to find something in the android BaseExtension class found here:
* https://android.googlesource.com/platform/tools/build/+/master/gradle/src/main/groovy/com/android/build/gradle/BaseExtension.groovy
* which ends up asking their Sdk class for it's location. That class knows about
* both ANDROID_HOME env variables, and also local.properties sdk.loc properties.
*
* If in the future, the android.adbExe is found to be inappropriate, deprecated,
* or a better way of finding the sdk path exists, we can change the implementation
* of this method to reflect that.
*/
def getSdkPath() {
new File( "$android.adbExe/../../" ).canonicalPath
}