| boolean getBooleanValue(Project proj, String propertyName, boolean defaultValue) { | |
| return proj.providers.gradleProperty(propertyName) | |
| .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() | |
| // The version of the prebuilt data binding runtime libraries that AGP adds to projects. | |
| Properties runtimeVersionProperties = new Properties() | |
| new File("${root}/runtime_version.bzl").withReader { runtimeVersionProperties.load(it) } | |
| databindingProperties.runtimeVersion = | |
| runtimeVersionProperties.getProperty('DATA_BINDING_RUNTIME_VERSION') - '"' - '"' | |
| 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.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 |