| boolean getBooleanValue(Project proj, String propertyName, boolean defaultValue) { |
| return proj.providers.gradleProperty(propertyName) |
| .forUseAtConfigurationTime() |
| .map { Boolean.valueOf(it) } |
| .orElse(defaultValue) |
| .get() |
| } |
| |
| /** |
| * Helper build script that reads data binding variables and sets up the projects. |
| */ |
| def root = ext.dataBindingRootFolder |
| Properties databindingProperties = new Properties() |
| databindingProperties.load(new FileInputStream("${root}/databinding.properties")) |
| |
| // load android gradle plugin's version file |
| apply from: "${root}/../buildSrc/base/version.gradle" |
| databindingProperties.version = ext.buildVersion |
| databindingProperties.androidPluginVersion=ext.buildVersion |
| databindingProperties.isIndependent = rootProject.name.equals("data-binding") |
| databindingProperties.compileSdkVersion = databindingProperties.compileSdkVersionStr.trim() |
| |
| ext.dataBindingConfig = databindingProperties |
| databindingProperties.artifactOutFolder = "${root}/../../out/repo" |
| def addRemoteRepos = getBooleanValue(project, "addRemoteRepos", false) |
| ext.dataBindingConfig.addRemoteRepos = addRemoteRepos |
| def dataBindingConfig = ext.dataBindingConfig |
| |
| def localRepositories = ["${root}/../../prebuilts/tools/common/offline-m2", |
| "${root}/../../prebuilts/gradle-plugin", |
| "${root}/../../prebuilts/tools/common/m2/repository", |
| "${root}/../../prebuilts/maven_repo/android", |
| databindingProperties.artifactOutFolder] |
| ext.dataBindingConfig.localRepositories = localRepositories |
| ext.dataBindingConfig.mavenRepoDir = rootProject.file("${databindingProperties.mavenRepoDir}").absolutePath |
| def addRepos(RepositoryHandler handler) { |
| dataBindingConfig.localRepositories.each { repo -> |
| handler.maven { |
| url repo |
| } |
| } |
| if (dataBindingConfig.addRemoteRepos) { |
| handler.jcenter() |
| handler.mavenCentral() |
| } |
| } |
| ext.addRepos = this.&addRepos |
| subprojects { |
| buildscript { |
| addRepos(repositories) |
| } |
| repositories { |
| addRepos(repositories) |
| } |
| } |
| |
| def enablePublishing(p, addJavadoc) { |
| if (!dataBindingConfig.isIndependent) { |
| p.plugins.apply('com.android.tools.publish') |
| } |
| } |
| ext.enablePublishing = this.&enablePublishing |