1*fb508042SAndroid Build Coastguard Worker// Copyright (C) 2010 The Android Open Source Project 2*fb508042SAndroid Build Coastguard Worker// 3*fb508042SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*fb508042SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*fb508042SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*fb508042SAndroid Build Coastguard Worker// 7*fb508042SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*fb508042SAndroid Build Coastguard Worker// 9*fb508042SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*fb508042SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*fb508042SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*fb508042SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*fb508042SAndroid Build Coastguard Worker// limitations under the License. 14*fb508042SAndroid Build Coastguard Worker 15*fb508042SAndroid Build Coastguard Workerpackage { 16*fb508042SAndroid Build Coastguard Worker default_applicable_licenses: ["external_guava_license"], 17*fb508042SAndroid Build Coastguard Worker} 18*fb508042SAndroid Build Coastguard Worker 19*fb508042SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 20*fb508042SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 21*fb508042SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 22*fb508042SAndroid Build Coastguard Worker// 23*fb508042SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 24*fb508042SAndroid Build Coastguard Worker// 25*fb508042SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 26*fb508042SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 27*fb508042SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 28*fb508042SAndroid Build Coastguard Worker// 29*fb508042SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 30*fb508042SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 31*fb508042SAndroid Build Coastguard Worker// used in the current project. 32*fb508042SAndroid Build Coastguard Worker// 33*fb508042SAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license 34*fb508042SAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 35*fb508042SAndroid Build Coastguard Worker// 36*fb508042SAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'. 37*fb508042SAndroid Build Coastguard Worker// See: http://go/android-license-faq 38*fb508042SAndroid Build Coastguard Workerlicense { 39*fb508042SAndroid Build Coastguard Worker name: "external_guava_license", 40*fb508042SAndroid Build Coastguard Worker visibility: [":__subpackages__"], 41*fb508042SAndroid Build Coastguard Worker license_kinds: [ 42*fb508042SAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 43*fb508042SAndroid Build Coastguard Worker "SPDX-license-identifier-CC0-1.0", 44*fb508042SAndroid Build Coastguard Worker "legacy_unencumbered", 45*fb508042SAndroid Build Coastguard Worker ], 46*fb508042SAndroid Build Coastguard Worker license_text: [ 47*fb508042SAndroid Build Coastguard Worker "NOTICE", 48*fb508042SAndroid Build Coastguard Worker ], 49*fb508042SAndroid Build Coastguard Worker} 50*fb508042SAndroid Build Coastguard Worker 51*fb508042SAndroid Build Coastguard Worker// Instructions for updating the guava version 52*fb508042SAndroid Build Coastguard Worker// 53*fb508042SAndroid Build Coastguard Worker// Guava updates must be merged to AOSP first. Make sure you are not using a 54*fb508042SAndroid Build Coastguard Worker// shallow copy of the Android tree to run the following instructions: 55*fb508042SAndroid Build Coastguard Worker// 56*fb508042SAndroid Build Coastguard Worker// 1. File a bug to generate a branch with the version you want to update to. 57*fb508042SAndroid Build Coastguard Worker// You can use b/209469232 as starting point. This step will generate an 58*fb508042SAndroid Build Coastguard Worker// upstream branch. 59*fb508042SAndroid Build Coastguard Worker// 2. Create your work branch using `repo start <your_branch_name>`. 60*fb508042SAndroid Build Coastguard Worker// 3. Fetch the upstream branch using `git fetch aosp <upstream_branch_name>`. 61*fb508042SAndroid Build Coastguard Worker// 4. Run the merge using `git merge FETCH_HEAD`. 62*fb508042SAndroid Build Coastguard Worker// 5. Update the METADATA file in this directory to reflect your changes. 63*fb508042SAndroid Build Coastguard Worker// 64*fb508042SAndroid Build Coastguard Worker// Note: When running `repo upload` to generate the CL, repo will produce a 65*fb508042SAndroid Build Coastguard Worker// warning about the number of commits you are trying to upload. This is 66*fb508042SAndroid Build Coastguard Worker// expected, and you can accept safely (a single gerrit "merge commit" change 67*fb508042SAndroid Build Coastguard Worker// will be created). 68*fb508042SAndroid Build Coastguard Worker 69*fb508042SAndroid Build Coastguard Workerjava_library { 70*fb508042SAndroid Build Coastguard Worker name: "guava", 71*fb508042SAndroid Build Coastguard Worker host_supported: true, 72*fb508042SAndroid Build Coastguard Worker hostdex: true, 73*fb508042SAndroid Build Coastguard Worker sdk_version: "core_current", 74*fb508042SAndroid Build Coastguard Worker target: { 75*fb508042SAndroid Build Coastguard Worker android: { 76*fb508042SAndroid Build Coastguard Worker static_libs: ["guava-android"], 77*fb508042SAndroid Build Coastguard Worker }, 78*fb508042SAndroid Build Coastguard Worker host: { 79*fb508042SAndroid Build Coastguard Worker static_libs: ["guava-jre"], 80*fb508042SAndroid Build Coastguard Worker }, 81*fb508042SAndroid Build Coastguard Worker windows: { 82*fb508042SAndroid Build Coastguard Worker static_libs: ["guava-jre"], 83*fb508042SAndroid Build Coastguard Worker enabled: true, 84*fb508042SAndroid Build Coastguard Worker }, 85*fb508042SAndroid Build Coastguard Worker }, 86*fb508042SAndroid Build Coastguard Worker apex_available: [ 87*fb508042SAndroid Build Coastguard Worker "//apex_available:platform", 88*fb508042SAndroid Build Coastguard Worker "//apex_available:anyapex", 89*fb508042SAndroid Build Coastguard Worker ], 90*fb508042SAndroid Build Coastguard Worker} 91*fb508042SAndroid Build Coastguard Worker 92*fb508042SAndroid Build Coastguard Workerjava_library { 93*fb508042SAndroid Build Coastguard Worker name: "guava-both", 94*fb508042SAndroid Build Coastguard Worker host_supported: true, 95*fb508042SAndroid Build Coastguard Worker sdk_version: "core_current", 96*fb508042SAndroid Build Coastguard Worker srcs: ["futures/failureaccess/**/*.java"], 97*fb508042SAndroid Build Coastguard Worker static_libs: ["jsr305"], 98*fb508042SAndroid Build Coastguard Worker libs: [ 99*fb508042SAndroid Build Coastguard Worker "guava-android-annotation-stubs", 100*fb508042SAndroid Build Coastguard Worker "error_prone_annotations", 101*fb508042SAndroid Build Coastguard Worker ], 102*fb508042SAndroid Build Coastguard Worker java_version: "1.8", 103*fb508042SAndroid Build Coastguard Worker target: { 104*fb508042SAndroid Build Coastguard Worker windows: { 105*fb508042SAndroid Build Coastguard Worker enabled: true, 106*fb508042SAndroid Build Coastguard Worker }, 107*fb508042SAndroid Build Coastguard Worker }, 108*fb508042SAndroid Build Coastguard Worker} 109*fb508042SAndroid Build Coastguard Worker 110*fb508042SAndroid Build Coastguard Workerjava_library_host { 111*fb508042SAndroid Build Coastguard Worker name: "guava-jre", 112*fb508042SAndroid Build Coastguard Worker srcs: ["guava/src/**/*.java"], 113*fb508042SAndroid Build Coastguard Worker static_libs: ["guava-both"], 114*fb508042SAndroid Build Coastguard Worker libs: [ 115*fb508042SAndroid Build Coastguard Worker "guava-android-annotation-stubs", 116*fb508042SAndroid Build Coastguard Worker "error_prone_annotations", 117*fb508042SAndroid Build Coastguard Worker ], 118*fb508042SAndroid Build Coastguard Worker java_version: "1.8", 119*fb508042SAndroid Build Coastguard Worker errorprone: { 120*fb508042SAndroid Build Coastguard Worker javacflags: [ 121*fb508042SAndroid Build Coastguard Worker "-Xep:NoCanIgnoreReturnValueOnClasses:WARN", 122*fb508042SAndroid Build Coastguard Worker ], 123*fb508042SAndroid Build Coastguard Worker }, 124*fb508042SAndroid Build Coastguard Worker target: { 125*fb508042SAndroid Build Coastguard Worker windows: { 126*fb508042SAndroid Build Coastguard Worker enabled: true, 127*fb508042SAndroid Build Coastguard Worker }, 128*fb508042SAndroid Build Coastguard Worker }, 129*fb508042SAndroid Build Coastguard Worker} 130*fb508042SAndroid Build Coastguard Worker 131*fb508042SAndroid Build Coastguard Workerjava_library_host { 132*fb508042SAndroid Build Coastguard Worker name: "guava-testlib", 133*fb508042SAndroid Build Coastguard Worker srcs: ["guava-testlib/src/**/*.java"], 134*fb508042SAndroid Build Coastguard Worker libs: [ 135*fb508042SAndroid Build Coastguard Worker "error_prone_annotations", 136*fb508042SAndroid Build Coastguard Worker "guava", 137*fb508042SAndroid Build Coastguard Worker "guava-android-annotation-stubs", 138*fb508042SAndroid Build Coastguard Worker "jsr305", 139*fb508042SAndroid Build Coastguard Worker "junit", 140*fb508042SAndroid Build Coastguard Worker ], 141*fb508042SAndroid Build Coastguard Worker java_version: "1.8", 142*fb508042SAndroid Build Coastguard Worker errorprone: { 143*fb508042SAndroid Build Coastguard Worker javacflags: [ 144*fb508042SAndroid Build Coastguard Worker "-Xep:ReturnValueIgnored:WARN", 145*fb508042SAndroid Build Coastguard Worker "-Xep:BareDotMetacharacter:WARN", 146*fb508042SAndroid Build Coastguard Worker ], 147*fb508042SAndroid Build Coastguard Worker }, 148*fb508042SAndroid Build Coastguard Worker} 149*fb508042SAndroid Build Coastguard Worker 150*fb508042SAndroid Build Coastguard Worker// Guava for Android can't compile against an Android bootclasspath, compile 151*fb508042SAndroid Build Coastguard Worker// it for the host and then use it on the device. It uses reflection to 152*fb508042SAndroid Build Coastguard Worker// prevent calling into methods that don't exist on Android. 153*fb508042SAndroid Build Coastguard Workerjava_library_host { 154*fb508042SAndroid Build Coastguard Worker name: "guava-android-host", 155*fb508042SAndroid Build Coastguard Worker srcs: ["android/guava/src/**/*.java"], 156*fb508042SAndroid Build Coastguard Worker static_libs: ["guava-both"], 157*fb508042SAndroid Build Coastguard Worker libs: [ 158*fb508042SAndroid Build Coastguard Worker "guava-android-annotation-stubs", 159*fb508042SAndroid Build Coastguard Worker "error_prone_annotations", 160*fb508042SAndroid Build Coastguard Worker ], 161*fb508042SAndroid Build Coastguard Worker java_version: "1.8", 162*fb508042SAndroid Build Coastguard Worker errorprone: { 163*fb508042SAndroid Build Coastguard Worker javacflags: [ 164*fb508042SAndroid Build Coastguard Worker "-Xep:NoCanIgnoreReturnValueOnClasses:WARN", 165*fb508042SAndroid Build Coastguard Worker ], 166*fb508042SAndroid Build Coastguard Worker }, 167*fb508042SAndroid Build Coastguard Worker target: { 168*fb508042SAndroid Build Coastguard Worker windows: { 169*fb508042SAndroid Build Coastguard Worker enabled: true, 170*fb508042SAndroid Build Coastguard Worker }, 171*fb508042SAndroid Build Coastguard Worker }, 172*fb508042SAndroid Build Coastguard Worker} 173*fb508042SAndroid Build Coastguard Worker 174*fb508042SAndroid Build Coastguard Workerjava_host_for_device { 175*fb508042SAndroid Build Coastguard Worker name: "guava-android", 176*fb508042SAndroid Build Coastguard Worker libs: ["guava-android-host"], 177*fb508042SAndroid Build Coastguard Worker} 178*fb508042SAndroid Build Coastguard Worker 179*fb508042SAndroid Build Coastguard Worker// Compile dummy implementations of annotations used by guava but not 180*fb508042SAndroid Build Coastguard Worker// present in the Android tree. 181*fb508042SAndroid Build Coastguard Worker// 30 may not be the lowest min_sdk_version, but the min sdk version 182*fb508042SAndroid Build Coastguard Worker// for permission controller. 183*fb508042SAndroid Build Coastguard Workerjava_library { 184*fb508042SAndroid Build Coastguard Worker name: "guava-android-annotation-stubs", 185*fb508042SAndroid Build Coastguard Worker host_supported: true, 186*fb508042SAndroid Build Coastguard Worker // b/267831518: Pin tradefed and dependencies to Java 11. 187*fb508042SAndroid Build Coastguard Worker java_version: "11", 188*fb508042SAndroid Build Coastguard Worker sdk_version: "core_current", 189*fb508042SAndroid Build Coastguard Worker min_sdk_version: "30", 190*fb508042SAndroid Build Coastguard Worker srcs: ["android-annotation-stubs/src/**/*.java"], 191*fb508042SAndroid Build Coastguard Worker apex_available: [ 192*fb508042SAndroid Build Coastguard Worker "//apex_available:platform", 193*fb508042SAndroid Build Coastguard Worker "//apex_available:anyapex", 194*fb508042SAndroid Build Coastguard Worker ], 195*fb508042SAndroid Build Coastguard Worker target: { 196*fb508042SAndroid Build Coastguard Worker windows: { 197*fb508042SAndroid Build Coastguard Worker enabled: true, 198*fb508042SAndroid Build Coastguard Worker }, 199*fb508042SAndroid Build Coastguard Worker }, 200*fb508042SAndroid Build Coastguard Worker is_stubs_module: true, 201*fb508042SAndroid Build Coastguard Worker} 202*fb508042SAndroid Build Coastguard Worker 203*fb508042SAndroid Build Coastguard Worker// Compile guava testlib 204*fb508042SAndroid Build Coastguard Workerjava_library_host { 205*fb508042SAndroid Build Coastguard Worker name: "guava-android-testlib-host", 206*fb508042SAndroid Build Coastguard Worker srcs: ["android/guava-testlib/src/**/*.java"], 207*fb508042SAndroid Build Coastguard Worker libs: [ 208*fb508042SAndroid Build Coastguard Worker "error_prone_annotations", 209*fb508042SAndroid Build Coastguard Worker "guava-android-annotation-stubs", 210*fb508042SAndroid Build Coastguard Worker "guava-android-host", 211*fb508042SAndroid Build Coastguard Worker "junit", 212*fb508042SAndroid Build Coastguard Worker ], 213*fb508042SAndroid Build Coastguard Worker java_version: "1.8", 214*fb508042SAndroid Build Coastguard Worker errorprone: { 215*fb508042SAndroid Build Coastguard Worker javacflags: [ 216*fb508042SAndroid Build Coastguard Worker "-Xep:ReturnValueIgnored:WARN", 217*fb508042SAndroid Build Coastguard Worker "-Xep:BareDotMetacharacter:WARN", 218*fb508042SAndroid Build Coastguard Worker ], 219*fb508042SAndroid Build Coastguard Worker }, 220*fb508042SAndroid Build Coastguard Worker} 221*fb508042SAndroid Build Coastguard Worker 222*fb508042SAndroid Build Coastguard Workerjava_host_for_device { 223*fb508042SAndroid Build Coastguard Worker name: "guava-android-testlib", 224*fb508042SAndroid Build Coastguard Worker libs: ["guava-android-testlib-host"], 225*fb508042SAndroid Build Coastguard Worker} 226