
NOTE: I don't know how android will go with adding a new property to a string-array resource, but not having it translated everywhere. Will it struggle because the EN version has three values for "theme", but other translations only have two?
160 lines
4.4 KiB
Groovy
160 lines
4.4 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
|
|
|
|
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'
|
|
}
|
|
}
|
|
|
|
// This is the hacky way which we force the subprojects to use the same build tools:
|
|
// http://stackoverflow.com/a/21032272
|
|
subprojects {
|
|
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
|
|
}
|