/** * 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.compileSdkVersion = Integer.parseInt(databindingProperties.compileSdkVersionStr) def repoBase = databindingProperties.mavenRepoAbsolutePath == "." ? root : databindingProperties.mavenRepoAbsolutePath databindingProperties.androidGradlePluginRepoDir = "${root}/../../${databindingProperties.androidGradlePluginOutRepo}" databindingProperties.mavenRepoDir = "${databindingProperties.androidGradlePluginRepoDir}" databindingProperties.internalPrebuiltsRepoDir = "${root}/${databindingProperties.internalPrebuiltsRepoName}" databindingProperties.inReleaseBuild = project.hasProperty('release') && project.ext.release == "true" databindingProperties.runProguard = (project.hasProperty('runProguard') && project.getProperty('runProguard').equals("true")) // load version from gradle build file apply from: "$root/../buildSrc/base/version.gradle" databindingProperties.androidPluginVersion=ext.buildVersion databindingProperties.isIndependent = rootProject.name.equals("data-binding") databindingProperties.eapOutDir = "${root}/${databindingProperties.eapOutFolderName}" databindingProperties.prebuildFolder = "${root}/${databindingProperties.prebuildFolderName}" + "/${databindingProperties.releaseVersion}" ext.dataBindingConfig = databindingProperties ext.dataBindingConfig.externalPrebuiltsBase = "${root}/../../prebuilts" databindingProperties.megaRepoDir = "${databindingProperties.externalPrebuiltsBase}/tools/common/m2/repository" new File(ext.dataBindingConfig.mavenRepoDir).mkdir() new File(ext.dataBindingConfig.prebuildFolder).mkdir() def addRemoteRepos = project.hasProperty('addRemoteRepos') && project.getProperty('addRemoteRepos').equals("true") ext.dataBindingConfig.addRemoteRepos = addRemoteRepos ext.dataBindingConfig.sharedSupportRepoDir = "${ext.dataBindingConfig.externalPrebuiltsBase}/maven_repo/android" ext.dataBindingConfig.forGradlePlugin = project.hasProperty('forGradlePlugin') && project.getProperty('forGradlePlugin').equals("true") def dataBindingConfig = ext.dataBindingConfig def localRepositories = ["${dataBindingConfig.internalPrebuiltsRepoDir}", "${dataBindingConfig.megaRepoDir}", "${dataBindingConfig.mavenRepoDir}", "${dataBindingConfig.externalPrebuiltsBase}/tools/common/offline-m2", dataBindingConfig.sharedSupportRepoDir, "${dataBindingConfig.externalPrebuiltsBase}/gradle-plugin", "${dataBindingConfig.externalPrebuiltsBase}/tools/common/m2/repository", "${databindingProperties.androidGradlePluginRepoDir}"] 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 (!ext.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" } rootProject.project(":base:gradle-core").publishLocal.dependsOn p.publishLocal } } ext.enablePublishing = this.&enablePublishing