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" p.apply from: "$dataBindingRootFolder/../buildSrc/base/bintray.gradle" if (addJavadoc) { p.apply from: "$dataBindingRootFolder/../buildSrc/base/javadoc.gradle" } } } ext.enablePublishing = this.&enablePublishing