blob: be1ca97494c85187f8590cc48776bdf60298aaf5 [file] [log] [blame]
Yigit Boyar24bec1c2015-07-09 10:51:54 -07001/**
2 * Helper build script that reads data binding variables and sets up the projects.
3 */
Yigit Boyard6ddc642015-09-11 12:59:40 -07004def forceReleaseVersion = project.hasProperty('useReleaseVersion') && project.getProperty('useReleaseVersion').equals("true")
Yigit Boyar9784c9a2015-10-12 18:59:27 -07005def root = ext.dataBindingRootFolder
Yigit Boyar24bec1c2015-07-09 10:51:54 -07006Properties databindingProperties = new Properties()
7databindingProperties.load(new FileInputStream("${root}/databinding.properties"))
Yigit Boyard6ddc642015-09-11 12:59:40 -07008if (forceReleaseVersion) {
9 databindingProperties.version = databindingProperties.releaseVersion
10}
Yigit Boyar7d9836f2015-09-14 11:18:21 -070011databindingProperties.compileSdkVersion = Integer.parseInt(databindingProperties.compileSdkVersionStr)
Yigit Boyar24bec1c2015-07-09 10:51:54 -070012def repoBase = databindingProperties.mavenRepoAbsolutePath == "." ? root : databindingProperties.mavenRepoAbsolutePath
Chris Warringtonc38c0cf2015-10-30 16:26:59 -070013databindingProperties.androidGradlePluginRepoDir = "${root}/../../${databindingProperties.androidGradlePluginOutRepo}"
14databindingProperties.mavenRepoDir = "${databindingProperties.androidGradlePluginRepoDir}"
Yigit Boyar9784c9a2015-10-12 18:59:27 -070015databindingProperties.internalPrebuiltsRepoDir = "${root}/${databindingProperties.internalPrebuiltsRepoName}"
16databindingProperties.runProguard = project.hasProperty('runProguard') && project.getProperty('runProguard').equals("true")
17
Yigit Boyard437f7e2015-10-30 16:28:34 -070018databindingProperties.inReleaseBuild = project.ext.hasProperty('release') && project.ext.release
Yigit Boyar9784c9a2015-10-12 18:59:27 -070019// load version from gradle build file
20apply from: "$root/../buildSrc/base/version.gradle"
21databindingProperties.androidPluginVersion=ext.buildVersion
Yigit Boyard437f7e2015-10-30 16:28:34 -070022databindingProperties.isIndependent = rootProject.name.equals("data-binding")
Yigit Boyar24bec1c2015-07-09 10:51:54 -070023databindingProperties.eapOutDir = "${root}/${databindingProperties.eapOutFolderName}"
24databindingProperties.prebuildFolder = "${root}/${databindingProperties.prebuildFolderName}" +
25 "/${databindingProperties.releaseVersion}"
26
Yigit Boyar9784c9a2015-10-12 18:59:27 -070027ext.dataBindingConfig = databindingProperties
28ext.dataBindingConfig.externalPrebuiltsBase = "${root}/../../prebuilts"
Yigit Boyar24bec1c2015-07-09 10:51:54 -070029databindingProperties.megaRepoDir = "${databindingProperties.externalPrebuiltsBase}/tools/common/m2/repository"
30
Yigit Boyar9784c9a2015-10-12 18:59:27 -070031new File(ext.dataBindingConfig.mavenRepoDir).mkdir()
32new File(ext.dataBindingConfig.prebuildFolder).mkdir()
Yigit Boyar24bec1c2015-07-09 10:51:54 -070033
Yigit Boyar097f33c2015-07-15 13:49:39 -070034def addRemoteRepos = project.hasProperty('addRemoteRepos') && project.getProperty('addRemoteRepos').equals("true")
Yigit Boyar9784c9a2015-10-12 18:59:27 -070035ext.dataBindingConfig.addRemoteRepos = addRemoteRepos
36ext.dataBindingConfig.sharedSupportRepoDir = "${ext.dataBindingConfig.externalPrebuiltsBase}/maven_repo/android"
Yigit Boyar9784c9a2015-10-12 18:59:27 -070037ext.dataBindingConfig.forGradlePlugin = project.hasProperty('forGradlePlugin') && project.getProperty('forGradlePlugin').equals("true")
38def dataBindingConfig = ext.dataBindingConfig
39def localRepositories = ["${dataBindingConfig.internalPrebuiltsRepoDir}",
40 "${dataBindingConfig.megaRepoDir}",
41 "${dataBindingConfig.mavenRepoDir}",
42 "${dataBindingConfig.externalPrebuiltsBase}/tools/common/offline-m2",
43 dataBindingConfig.sharedSupportRepoDir,
44 "${dataBindingConfig.externalPrebuiltsBase}/gradle-plugin",
45 "${dataBindingConfig.externalPrebuiltsBase}/tools/common/m2/repository",
46 "${databindingProperties.androidGradlePluginRepoDir}"]
47ext.dataBindingConfig.localRepositories = localRepositories
Yigit Boyar24bec1c2015-07-09 10:51:54 -070048def addRepos(RepositoryHandler handler) {
Yigit Boyar9784c9a2015-10-12 18:59:27 -070049 dataBindingConfig.localRepositories.each { repo ->
Yigit Boyar24bec1c2015-07-09 10:51:54 -070050 handler.maven {
51 url repo
52 }
53 }
Yigit Boyar9784c9a2015-10-12 18:59:27 -070054 if (dataBindingConfig.addRemoteRepos) {
Yigit Boyar25731022015-09-11 14:53:54 -070055 handler.jcenter()
56 handler.mavenCentral()
57 }
Yigit Boyar24bec1c2015-07-09 10:51:54 -070058}
59ext.addRepos = this.&addRepos
60subprojects {
61 buildscript {
Yigit Boyar890b4852015-09-25 14:48:56 -070062 addRepos(repositories)
Yigit Boyar24bec1c2015-07-09 10:51:54 -070063 }
64 repositories {
Yigit Boyar890b4852015-09-25 14:48:56 -070065 addRepos(repositories)
Yigit Boyar24bec1c2015-07-09 10:51:54 -070066 }
67}
Yigit Boyard6ddc642015-09-11 12:59:40 -070068
Yigit Boyard437f7e2015-10-30 16:28:34 -070069def enablePublishing(p, addJavadoc) {
70 if (!ext.dataBindingConfig.isIndependent) {
71 p.apply from: "$dataBindingRootFolder/../buildSrc/base/publish.gradle"
72 p.apply from: "$dataBindingRootFolder/../buildSrc/base/bintray.gradle"
73 if (addJavadoc) {
74 p.apply from: "$dataBindingRootFolder/../buildSrc/base/javadoc.gradle"
75 }
Yigit Boyarfccc8882015-11-05 22:07:52 -080076 rootProject.project(":base:gradle-core").publishLocal.dependsOn p.publishLocal
Yigit Boyard437f7e2015-10-30 16:28:34 -070077 }
78}
79ext.enablePublishing = this.&enablePublishing