xref: /aosp_15_r20/external/guava/Android.bp (revision fb5080426417cab6bd44d0ed3f37e47d42859579)
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