Skip to content

Instantly share code, notes, and snippets.

@westonal
Forked from artem-zinnatullin/build.gradle
Last active August 29, 2015 14:24
Show Gist options
  • Save westonal/f976c89aede0d88177b3 to your computer and use it in GitHub Desktop.
Save westonal/f976c89aede0d88177b3 to your computer and use it in GitHub Desktop.
// add this to the general build.gradle, not in the subproject's build.gradle
// improved version of Xavier's tip http://tools.android.com/tech-docs/new-build-system/tips#TOC-Improving-Build-Server-performance.
// usage example default, preDex will be enabled: gradle clean build
// usage example disabling preDex: gradle clean build -PpreDexEnable=false
// preDexEnable parameter's value can be set as property of Continuous Integration build config
// this is the main difference from Xavier's workaround where he doing only hasProperty check
project.ext {
if (project.hasProperty('preDexEnable')) {
project.ext.preDexLibs = project.properties['preDexEnable'].equals('true')
} else {
project.ext.preDexLibs = true // pre dexing should be true by default
}
println('PREDEX ' + (project.ext.preDexLibs ? 'ENABLED' : 'DISABLED')) // goes to build log or console output
}
subprojects {
project.plugins.whenPluginAdded { plugin ->
if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
} else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment