100 lines
3.5 KiB
Groovy
100 lines
3.5 KiB
Groovy
/**
|
|
* This is *NOT* the main build script for F-Droid. The main build.gradle
|
|
* is in F-Droid/build.gradle. Usually multi-project builds don't have a
|
|
* build.gradle in the top level directory (http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup).
|
|
*
|
|
* This build script contains miscellaneous hacks to ensure that all of
|
|
* F-Droids dependencies can be built from source.
|
|
* Each hack should be documented, and in the future, may need to be changed
|
|
* in order to ensure that we keep pace with any changes upstream makes to
|
|
* their build processes.
|
|
*
|
|
* - Some subprojects don't have gradle build scripts, so they are setup here.
|
|
*
|
|
* - The android support libraries make a lot of dependencies about the project
|
|
* two folders up from themselves, which we will have to provide for them.
|
|
*/
|
|
|
|
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:1.1.3'
|
|
|
|
// libsuperuser submodule requires these plugins, even though
|
|
// the F-Droid build process never invokes code from them. It
|
|
// would be nice to do away with this in the future, so we don't
|
|
// force people do download stuff they wont use.
|
|
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
|
|
classpath 'com.github.dcendents:android-maven-plugin:1.2'
|
|
}
|
|
}
|
|
|
|
if ( hasProperty( 'sourceDeps' ) ) {
|
|
|
|
project(':extern:UniversalImageLoader:library') {
|
|
|
|
apply plugin: 'android-library'
|
|
|
|
android {
|
|
compileSdkVersion 16
|
|
buildToolsVersion '22.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']
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
project(':extern:zipsigner') {
|
|
|
|
apply plugin: 'java'
|
|
|
|
dependencies {
|
|
compile project(':extern:spongycastle:core')
|
|
compile project(':extern:spongycastle:pkix')
|
|
compile project(':extern:spongycastle:prov')
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
subprojects {
|
|
|
|
// This is the hacky way which we force the subprojects to use the same build tools:
|
|
// http://stackoverflow.com/a/21032272
|
|
afterEvaluate {
|
|
if ( it.hasProperty( 'android' ) ) {
|
|
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 plugin 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 '22.0.1'
|
|
logger.info("Set buildToolsVersion to '22.0.1'")
|
|
} catch (GradleException e) {
|
|
logger.info("Tried to set the buildToolsVersion, however we were not allowed to: $e.message")
|
|
}
|
|
|
|
// don't abort build on lint errors
|
|
// http://stackoverflow.com/a/25149514
|
|
configure(android.lintOptions) {
|
|
abortOnError false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|