19ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas/*
29ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * Copyright (C) 2017 The Android Open Source Project
39ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas *
49ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License");
59ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * you may not use this file except in compliance with the License.
69ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * You may obtain a copy of the License at
79ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas *
89ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas *      http://www.apache.org/licenses/LICENSE-2.0
99ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas *
109ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software
119ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS,
129ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * See the License for the specific language governing permissions and
149ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * limitations under the License.
159ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas */
169ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas
171eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan ViveretteString getFullSdkPath(String prebuiltsRoot) {
181eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette    final String osName = System.getProperty("os.name").toLowerCase()
191eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette    final boolean isMacOsX =
201eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette            osName.contains("mac os x") || osName.contains("darwin") || osName.contains("osx");
211eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette    final String platform = isMacOsX ? 'darwin' : 'linux'
221eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette    return "${prebuiltsRoot}/fullsdk-${platform}"
231eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette}
241eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette
259ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikasdef supportRoot = ext.supportRootFolder
269ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikasif (supportRoot == null) {
279ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    throw new RuntimeException("variable supportRootFolder is not set. you must set it before" +
289ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas            " including this script")
299ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas}
309ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas
31a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikasapply from: "${supportRoot}/buildSrc/unbundled_check.gradle"
32a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas
33a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikasdef checkoutRoot = "${ext.supportRootFolder}/../.."
349ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikasext.repos = new Properties()
359ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikasext.repos.prebuiltsRoot = "${checkoutRoot}/prebuilts"
369ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikasext.repos.prebuiltsRootUri = "file://${repos.prebuiltsRoot}"
379ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas
38a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikasext.repoNames = [// Android Gradle Plugin prebuilts updated manually
39a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 "${repos.prebuiltsRoot}/gradle-plugin",
40a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 // Miscellaneous prebuilts updated sporadically
419ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas                 "${repos.prebuiltsRoot}/tools/common/m2/repository",
42a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 // Historical releases updated as part of public release
431eefe7a4037bee45eff2cfac05124bb3b93cf60fAlan Viverette                 "${repos.prebuiltsRoot}/maven_repo/android",
440b10646cfd5d319855bd0c171594dc474738684eXyan Bhatnagar                 "${repos.prebuiltsRoot}/maven_repo/google-play-service-client-libraries-3p",
45a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 // Manually constructed, but soon to be updated by update_current.py
46a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 "${repos.prebuiltsRoot}/sdk/current/extras/material-design",
47a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 // Full checkout prebuilts updated by update_current.py
48a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 "${repos.prebuiltsRoot}/sdk/current/support/m2repository",
49a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas                 // Unbundled checkout prebuilts updated by fullsdk drop
50cb30642811f325654c34d2114df4e835d3ff823cSergey Vasilinets                 "${getFullSdkPath(repos.prebuiltsRoot)}/extras/android/m2repository",
51cb30642811f325654c34d2114df4e835d3ff823cSergey Vasilinets                 // temporary: com.android.support.constraint:constraint-layout:1.0.2 is there
52cb30642811f325654c34d2114df4e835d3ff823cSergey Vasilinets                 "${getFullSdkPath(repos.prebuiltsRoot)}/extras/m2repository/"]
539ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas
549ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas/**
559ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas * Adds maven repositories to the given repository handler.
569ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas */
579ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikasdef addMavenRepositories(RepositoryHandler handler) {
589ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    repoNames.each { repo ->
599ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas        handler.maven {
609ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas            url repo
619ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas        }
629ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    }
63a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas    if (System.getenv("ALLOW_PUBLIC_REPOS") != null || (isUnbundledBuild(ext.supportRootFolder))) {
649ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas        handler.mavenCentral()
659ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas        handler.jcenter()
66aa9688ea659f43fa7d2054ea748c6dee1ef33e14Aurimas Liutikas        handler.google()
67a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas        handler.maven {
68a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas            url "https://plugins.gradle.org/m2/"
69a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikas        }
709ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    }
719ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    def androidPluginRepoOverride = System.getenv("GRADLE_PLUGIN_REPO")
729ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    if (androidPluginRepoOverride != null) {
739ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas        handler.maven {
749ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas            url androidPluginRepoOverride
759ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas        }
769ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas    }
779ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas}
789ab3b4c389856fa168165423297d468ccf108a90Aurimas Liutikas
79a2cbbfa1d3d019289c05263525b0bfd429fa3225Aurimas Liutikasext.repos.addMavenRepositories = this.&addMavenRepositories
80