| boolean getBooleanValue(String environmentVariable, String projectProperty, boolean defaultValue) { |
| String env = System.getenv(environmentVariable) |
| if (env != null) { |
| return !env.isEmpty(); |
| } |
| return getBooleanValue(project, projectProperty, defaultValue); |
| } |
| |
| boolean getBooleanValue(Project proj, String propertyName, boolean defaultValue) { |
| if (proj.hasProperty(propertyName)) { |
| String prop = (String) project.properties[propertyName] |
| if (prop != null) { |
| return Boolean.valueOf(prop); |
| } |
| } else { |
| return defaultValue; |
| } |
| } |
| |
| /** |
| * 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 |
| 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.apply from: "$dataBindingRootFolder/../buildSrc/base/publish.gradle" |
| if (addJavadoc) { |
| p.apply from: "$dataBindingRootFolder/../buildSrc/base/javadoc.gradle" |
| } |
| } |
| } |
| ext.enablePublishing = this.&enablePublishing |