Gradle hack to always use same build tools in subprojects

This commit is contained in:
Dominik Schürmann 2015-03-02 15:46:41 +01:00
parent 69865a6d57
commit fab60f2ddb
2 changed files with 32 additions and 1 deletions

View File

@ -11,7 +11,7 @@ before_install:
# Install required Android components.
#- echo "y" | android update sdk -a --filter build-tools-19.1.0,android-19,platform-tools,extra-android-support,extra-android-m2repository --no-ui --force
- ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | android update sdk --no-ui --all --force --filter build-tools-21.1.2,build-tools-21.1.1,build-tools-19.1.0,android-21,android-19,platform-tools,extra-android-support,extra-android-m2repository
- ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | android update sdk --no-ui --all --force --filter build-tools-21.1.2,android-21,android-19,platform-tools,extra-android-support,extra-android-m2repository
install: echo "Installation done"
script:
- ./gradlew assemble -S -q

View File

@ -38,3 +38,34 @@ project(':extern:spongycastle') {
test.enabled = false
}
}
// Copied from https://gitlab.com/fdroid/fdroidclient/blob/master/build.gradle#L144
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 '21.1.2'
logger.info("Set buildToolsVersion to '21.1.2'")
} 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
}
}
}
}
}