propLoader.gradle revision 9784c9aaedeb863018f5fcaa0a598e8e2f8ed2f3
1/**
2 * Helper build script that reads data binding variables and sets up the projects.
3 */
4def forceReleaseVersion = project.hasProperty('useReleaseVersion') && project.getProperty('useReleaseVersion').equals("true")
5def root = ext.dataBindingRootFolder
6Properties databindingProperties = new Properties()
7databindingProperties.load(new FileInputStream("${root}/databinding.properties"))
8if (forceReleaseVersion) {
9    databindingProperties.version = databindingProperties.releaseVersion
10}
11databindingProperties.compileSdkVersion = Integer.parseInt(databindingProperties.compileSdkVersionStr)
12def repoBase = databindingProperties.mavenRepoAbsolutePath == "." ? root : databindingProperties.mavenRepoAbsolutePath
13databindingProperties.mavenRepoDir = "${repoBase}/${databindingProperties.mavenRepoName}"
14databindingProperties.internalPrebuiltsRepoDir = "${root}/${databindingProperties.internalPrebuiltsRepoName}"
15databindingProperties.runProguard = project.hasProperty('runProguard') && project.getProperty('runProguard').equals("true")
16
17// load version from gradle build file
18apply from: "$root/../buildSrc/base/version.gradle"
19databindingProperties.androidPluginVersion=ext.buildVersion
20
21databindingProperties.eapOutDir = "${root}/${databindingProperties.eapOutFolderName}"
22databindingProperties.prebuildFolder = "${root}/${databindingProperties.prebuildFolderName}" +
23        "/${databindingProperties.releaseVersion}"
24
25ext.dataBindingConfig = databindingProperties
26ext.dataBindingConfig.externalPrebuiltsBase = "${root}/../../prebuilts"
27databindingProperties.megaRepoDir = "${databindingProperties.externalPrebuiltsBase}/tools/common/m2/repository"
28databindingProperties.androidGradlePluginRepoDir = "${root}/../../${databindingProperties.androidGradlePluginOutRepo}"
29
30println "local maven repo is ${ext.dataBindingConfig.mavenRepoDir}."
31println "local pre-build folder is ${ext.dataBindingConfig.prebuildFolder}."
32println "mega-repo folder is ${ext.dataBindingConfig.megaRepoDir}."
33
34new File(ext.dataBindingConfig.mavenRepoDir).mkdir()
35new File(ext.dataBindingConfig.prebuildFolder).mkdir()
36
37def addRemoteRepos = project.hasProperty('addRemoteRepos') && project.getProperty('addRemoteRepos').equals("true")
38ext.dataBindingConfig.addRemoteRepos = addRemoteRepos
39ext.dataBindingConfig.sharedSupportRepoDir = "${ext.dataBindingConfig.externalPrebuiltsBase}/maven_repo/android"
40ext.dataBindingConfig.inReleaseBuild = !databindingProperties.version.endsWith("SNAPSHOT")
41ext.dataBindingConfig.forGradlePlugin = project.hasProperty('forGradlePlugin') && project.getProperty('forGradlePlugin').equals("true")
42def dataBindingConfig = ext.dataBindingConfig
43def localRepositories = ["${dataBindingConfig.internalPrebuiltsRepoDir}",
44                         "${dataBindingConfig.megaRepoDir}",
45                         "${dataBindingConfig.mavenRepoDir}",
46                         "${dataBindingConfig.externalPrebuiltsBase}/tools/common/offline-m2",
47                         dataBindingConfig.sharedSupportRepoDir,
48                         "${dataBindingConfig.externalPrebuiltsBase}/gradle-plugin",
49                         "${dataBindingConfig.externalPrebuiltsBase}/tools/common/m2/repository",
50                         "${databindingProperties.androidGradlePluginRepoDir}"]
51ext.dataBindingConfig.localRepositories = localRepositories
52def addRepos(RepositoryHandler handler) {
53    dataBindingConfig.localRepositories.each { repo ->
54        handler.maven {
55            url repo
56        }
57    }
58    if (dataBindingConfig.addRemoteRepos) {
59        handler.jcenter()
60        handler.mavenCentral()
61    }
62}
63ext.addRepos = this.&addRepos
64subprojects {
65    buildscript {
66        addRepos(repositories)
67    }
68    repositories {
69        addRepos(repositories)
70    }
71}
72
73