blob: ef1fa60970561638a514342a70582a683d844b71 [file] [log] [blame]
Jiyong Park7fb4b182019-12-20 14:35:43 +09001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// How stubs are generated:
16//
17// raw source files --(metalava)--> stub source files --(javac)--> stub jar files
18//
Anton Hansson2feb3f12020-11-13 11:44:32 +000019// - The metalava conversion is done by droidstub modules
20// - The javac compilation is done by java_library modules
21//
Jiyong Park7fb4b182019-12-20 14:35:43 +090022// The metalava conversion is also responsible for creating API signature files
Anton Hansson2feb3f12020-11-13 11:44:32 +000023// and comparing them against the checked in API signature, and also checking compatibility
24// with the latest frozen API signature.
Jiyong Park7fb4b182019-12-20 14:35:43 +090025
26/////////////////////////////////////////////////////////////////////
Anton Hansson51861e72020-11-13 09:55:29 +000027// These modules provide source files for the stub libraries
Jiyong Park7fb4b182019-12-20 14:35:43 +090028/////////////////////////////////////////////////////////////////////
29
Anton Hansson76d3db42020-04-09 14:16:37 +010030droidstubs {
31 name: "api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +000032 defaults: [
33 "android-non-updatable-stubs-defaults",
34 "module-classpath-stubs-defaults",
35 ],
Anton Hansson76d3db42020-04-09 14:16:37 +010036 check_api: {
37 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000038 api_file: ":non-updatable-current.txt",
39 removed_api_file: ":non-updatable-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010040 },
Anton Hansson37e102e2020-10-05 16:42:40 +010041 last_released: {
42 api_file: ":android-non-updatable.api.public.latest",
43 removed_api_file: ":android-non-updatable-removed.api.public.latest",
Anton Hansson7f3393d2021-04-12 11:56:53 +010044 baseline_file: ":android-non-updatable-incompatibilities.api.public.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +010045 },
Anton Hansson76d3db42020-04-09 14:16:37 +010046 api_lint: {
47 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +010048 new_since: ":android.api.public.latest",
Adrian Roos440f3cf2023-09-20 10:03:31 +000049 baseline_file: ":non-updatable-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010050 },
51 },
Anton Hansson85785fe2021-01-20 20:23:34 +000052 dists: [
53 {
Anton Hanssondd8ef672022-01-04 08:53:19 +000054 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +000055 dir: "apistubs/android/public/api",
56 dest: "android-non-updatable.txt",
57 tag: ".api.txt",
58 },
59 {
Anton Hanssondd8ef672022-01-04 08:53:19 +000060 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +000061 dir: "apistubs/android/public/api",
62 dest: "android-non-updatable-removed.txt",
63 tag: ".removed-api.txt",
64 },
65 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +000066 api_surface: "public",
Anton Hansson76d3db42020-04-09 14:16:37 +010067}
68
Anton Hansson84a0e712023-10-23 09:17:45 +000069priv_apps = [
70 "--show-annotation android.annotation.SystemApi\\(" +
71 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
72 "\\)",
73]
Anton Hansson2feb3f12020-11-13 11:44:32 +000074
Anton Hansson84a0e712023-10-23 09:17:45 +000075priv_apps_in_stubs = [
76 "--show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
77 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
78 "\\)",
79]
Anton Hansson2feb3f12020-11-13 11:44:32 +000080
Anton Hansson84a0e712023-10-23 09:17:45 +000081test = ["--show-annotation android.annotation.TestApi"]
Anton Hansson2feb3f12020-11-13 11:44:32 +000082
Anton Hansson84a0e712023-10-23 09:17:45 +000083module_libs = [
84 "--show-annotation android.annotation.SystemApi\\(" +
85 "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
86 "\\)",
87]
Anton Hansson81969c22020-02-03 20:45:56 +000088
Jiyong Park7fb4b182019-12-20 14:35:43 +090089droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +010090 name: "system-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +000091 defaults: [
92 "android-non-updatable-stubs-defaults",
93 "module-classpath-stubs-defaults",
94 ],
Anton Hansson84a0e712023-10-23 09:17:45 +000095 flags: priv_apps,
Anton Hansson76d3db42020-04-09 14:16:37 +010096 check_api: {
97 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000098 api_file: ":non-updatable-system-current.txt",
99 removed_api_file: ":non-updatable-system-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100100 },
Anton Hansson37e102e2020-10-05 16:42:40 +0100101 last_released: {
102 api_file: ":android-non-updatable.api.system.latest",
103 removed_api_file: ":android-non-updatable-removed.api.system.latest",
Anton Hansson240ee482021-04-14 12:52:00 +0100104 baseline_file: ":android-non-updatable-incompatibilities.api.system.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +0100105 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100106 api_lint: {
107 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +0100108 new_since: ":android.api.system.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000109 baseline_file: ":non-updatable-system-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100110 },
111 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000112 dists: [
113 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000114 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000115 dir: "apistubs/android/system/api",
116 dest: "android-non-updatable.txt",
117 tag: ".api.txt",
118 },
119 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000120 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000121 dir: "apistubs/android/system/api",
122 dest: "android-non-updatable-removed.txt",
123 tag: ".removed-api.txt",
124 },
125 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000126 api_surface: "system",
Anton Hansson76d3db42020-04-09 14:16:37 +0100127}
128
129droidstubs {
Anton Hansson022aac52020-11-05 10:45:13 +0000130 name: "test-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000131 defaults: [
132 "android-non-updatable-stubs-defaults",
133 "module-classpath-stubs-defaults",
134 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000135 flags: test + priv_apps_in_stubs,
Jiyong Park7fb4b182019-12-20 14:35:43 +0900136 check_api: {
137 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000138 api_file: ":non-updatable-test-current.txt",
139 removed_api_file: ":non-updatable-test-removed.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900140 },
141 api_lint: {
142 enabled: true,
Adrian Roos440f3cf2023-09-20 10:03:31 +0000143 new_since: ":android.api.test.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000144 baseline_file: ":non-updatable-test-lint-baseline.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900145 },
146 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000147 dists: [
148 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000149 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000150 dir: "apistubs/android/test/api",
151 dest: "android.txt",
152 tag: ".api.txt",
153 },
154 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000155 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000156 dir: "apistubs/android/test/api",
157 dest: "removed.txt",
158 tag: ".removed-api.txt",
159 },
160 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000161 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000162 dir: "apistubs/android/test/api",
163 dest: "android-non-updatable.txt",
164 tag: ".api.txt",
165 },
166 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000167 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000168 dir: "apistubs/android/test/api",
169 dest: "android-non-updatable-removed.txt",
170 tag: ".removed-api.txt",
171 },
172 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000173 api_surface: "test",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900174}
175
Jiyong Parke3095162019-12-20 15:30:28 +0900176droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100177 name: "module-lib-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000178 defaults: [
179 "android-non-updatable-stubs-defaults",
180 "module-classpath-stubs-defaults",
181 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000182 flags: priv_apps_in_stubs + module_libs,
Anton Hansson76d3db42020-04-09 14:16:37 +0100183 check_api: {
184 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000185 api_file: ":non-updatable-module-lib-current.txt",
186 removed_api_file: ":non-updatable-module-lib-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100187 },
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100188 last_released: {
189 api_file: ":android-non-updatable.api.module-lib.latest",
190 removed_api_file: ":android-non-updatable-removed.api.module-lib.latest",
Junyu Lai2dbb1772022-01-12 17:38:02 +0000191 baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100192 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100193 api_lint: {
194 enabled: true,
Anton Hansson4f90aa52021-06-04 22:23:59 +0100195 new_since: ":android.api.module-lib.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000196 baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100197 },
198 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000199 dists: [
200 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000201 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000202 dir: "apistubs/android/module-lib/api",
203 dest: "android-non-updatable.txt",
204 tag: ".api.txt",
205 },
206 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000207 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000208 dir: "apistubs/android/module-lib/api",
209 dest: "android-non-updatable-removed.txt",
210 tag: ".removed-api.txt",
211 },
212 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000213 api_surface: "module-lib",
Anton Hansson76d3db42020-04-09 14:16:37 +0100214}
Anton Hansson81969c22020-02-03 20:45:56 +0000215
Jiyong Parke3095162019-12-20 15:30:28 +0900216/////////////////////////////////////////////////////////////////////
Jiyong Park7fb4b182019-12-20 14:35:43 +0900217// android_*_stubs_current modules are the stubs libraries compiled
Anton Hansson2feb3f12020-11-13 11:44:32 +0000218// from stub sources
Jiyong Park7fb4b182019-12-20 14:35:43 +0900219/////////////////////////////////////////////////////////////////////
220
221java_defaults {
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000222 name: "android.jar_defaults",
223 sdk_version: "none",
224 system_modules: "none",
225 java_version: "1.8",
226 compile_dex: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000227 visibility: ["//visibility:public"],
228}
229
230java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000231 name: "android-non-updatable_defaults",
Anton Hanssonfbd32f32020-04-09 14:16:37 +0100232 sdk_version: "none",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900233 system_modules: "none",
234 java_version: "1.8",
235 compile_dex: true,
Jihoon Kang491c7082023-06-15 18:37:01 +0000236}
237
238java_defaults {
239 name: "android-non-updatable_from_source_defaults",
240 libs: ["stub-annotations"],
241 static_libs: ["framework-res-package-jar"], // Export package of framework-res
Anton Hanssona4108912021-04-09 13:40:11 +0100242 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000243 targets: ["sdk"],
Anton Hanssona4108912021-04-09 13:40:11 +0100244 tag: ".jar",
245 dest: "android-non-updatable.jar",
Anton Hansson240ee482021-04-14 12:52:00 +0100246 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900247}
248
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100249java_library {
Anton Hanssona4748cd2021-04-09 10:16:19 +0100250 name: "android-non-updatable.stubs",
Jihoon Kang491c7082023-06-15 18:37:01 +0000251 defaults: ["android-non-updatable_defaults"],
252 static_libs: [
253 "android-non-updatable.stubs.from-source",
254 ],
255 product_variables: {
256 build_from_text_stub: {
257 static_libs: [
258 "android-non-updatable.stubs.from-text",
259 ],
260 exclude_static_libs: [
261 "android-non-updatable.stubs.from-source",
262 ],
263 },
264 },
265}
266
267java_library {
268 name: "android-non-updatable.stubs.system",
269 defaults: ["android-non-updatable_defaults"],
270 static_libs: [
271 "android-non-updatable.stubs.system.from-source",
272 ],
273 product_variables: {
274 build_from_text_stub: {
275 static_libs: [
276 "android-non-updatable.stubs.system.from-text",
277 ],
278 exclude_static_libs: [
279 "android-non-updatable.stubs.system.from-source",
280 ],
281 },
282 },
283}
284
285java_library {
286 name: "android-non-updatable.stubs.module_lib",
287 defaults: ["android-non-updatable_defaults"],
288 static_libs: [
289 "android-non-updatable.stubs.module_lib.from-source",
290 ],
291 product_variables: {
292 build_from_text_stub: {
293 static_libs: [
294 "android-non-updatable.stubs.module_lib.from-text",
295 ],
296 exclude_static_libs: [
297 "android-non-updatable.stubs.module_lib.from-source",
298 ],
299 },
300 },
301}
302
303java_library {
304 name: "android-non-updatable.stubs.test",
305 defaults: ["android-non-updatable_defaults"],
306 static_libs: [
307 "android-non-updatable.stubs.test.from-source",
308 ],
309 product_variables: {
310 build_from_text_stub: {
311 static_libs: [
312 "android-non-updatable.stubs.test.from-text",
313 ],
314 exclude_static_libs: [
315 "android-non-updatable.stubs.test.from-source",
316 ],
317 },
318 },
319}
320
321java_library {
322 name: "android-non-updatable.stubs.from-source",
323 defaults: [
324 "android-non-updatable_defaults",
325 "android-non-updatable_from_source_defaults",
326 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100327 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000328 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100329 dist: {
330 dir: "apistubs/android/public",
331 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100332}
333
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100334java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000335 name: "android-non-updatable.stubs.system.from-source",
336 defaults: [
337 "android-non-updatable_defaults",
338 "android-non-updatable_from_source_defaults",
339 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100340 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000341 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100342 dist: {
343 dir: "apistubs/android/system",
344 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100345}
346
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100347java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000348 name: "android-non-updatable.stubs.module_lib.from-source",
349 defaults: [
350 "android-non-updatable_defaults",
351 "android-non-updatable_from_source_defaults",
352 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100353 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000354 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100355 dist: {
356 dir: "apistubs/android/module-lib",
357 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100358}
359
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100360java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000361 name: "android-non-updatable.stubs.test.from-source",
362 defaults: [
363 "android-non-updatable_defaults",
364 "android-non-updatable_from_source_defaults",
365 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100366 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000367 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100368 dist: {
369 dir: "apistubs/android/test",
370 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100371}
372
373java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000374 name: "android-non-updatable_from_text_defaults",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000375 static_libs: ["framework-res-package-jar"],
376 libs: ["stub-annotations"],
377}
378
379java_api_library {
380 name: "android-non-updatable.stubs.from-text",
381 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000382 api_contributions: [
383 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000384 ],
Jihoon Kang491c7082023-06-15 18:37:01 +0000385 defaults: ["android-non-updatable_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000386 full_api_surface_stub: "android_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000387}
388
389java_api_library {
390 name: "android-non-updatable.stubs.system.from-text",
391 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000392 api_contributions: [
393 "api-stubs-docs-non-updatable.api.contribution",
394 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000395 ],
Jihoon Kang491c7082023-06-15 18:37:01 +0000396 defaults: ["android-non-updatable_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000397 full_api_surface_stub: "android_system_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000398}
399
400java_api_library {
401 name: "android-non-updatable.stubs.test.from-text",
402 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000403 api_contributions: [
404 "api-stubs-docs-non-updatable.api.contribution",
405 "system-api-stubs-docs-non-updatable.api.contribution",
406 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000407 ],
Jihoon Kang491c7082023-06-15 18:37:01 +0000408 defaults: ["android-non-updatable_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000409 full_api_surface_stub: "android_test_stubs_current.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000410}
411
412java_api_library {
413 name: "android-non-updatable.stubs.module_lib.from-text",
414 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000415 api_contributions: [
416 "api-stubs-docs-non-updatable.api.contribution",
417 "system-api-stubs-docs-non-updatable.api.contribution",
418 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000419 ],
Jihoon Kang491c7082023-06-15 18:37:01 +0000420 defaults: ["android-non-updatable_from_text_defaults"],
Jihoon Kang12cddb32023-06-29 21:35:24 +0000421 full_api_surface_stub: "android_module_lib_stubs_current_full.from-text",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000422}
423
Jihoon Kang4683b142023-10-05 23:42:51 +0000424// This module generates a stub jar that is a union of the test and module lib
425// non-updatable api contributions. Modules should not depend on the stub jar
426// generated from this module, as this module is strictly used for hiddenapi only.
427java_api_library {
428 name: "android-non-updatable.stubs.test_module_lib",
429 api_surface: "module_lib",
430 api_contributions: [
431 "api-stubs-docs-non-updatable.api.contribution",
432 "system-api-stubs-docs-non-updatable.api.contribution",
433 "test-api-stubs-docs-non-updatable.api.contribution",
434 "module-lib-api-stubs-docs-non-updatable.api.contribution",
435 ],
436 defaults: ["android-non-updatable_from_text_defaults"],
437 full_api_surface_stub: "android_test_module_lib_stubs_current.from-text",
438
439 // This module is only used for hiddenapi, and other modules should not
440 // depend on this module.
441 visibility: ["//visibility:private"],
442}
443
Jihoon Kang0c101db2023-03-14 07:03:46 +0000444java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000445 name: "android_stubs_dists_default",
446 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000447 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000448 tag: ".jar",
449 dest: "android.jar",
450 },
Anton Hansson86925682021-04-14 14:54:43 +0100451 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000452}
453
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100454java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000455 name: "android_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000456 static_libs: [
457 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100458 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100459 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100460 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100461 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900462}
463
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100464java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000465 name: "android_system_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000466 static_libs: [
467 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100468 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100469 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100470 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000471 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100472 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000473 "android_stubs_dists_default",
474 ],
475 dist: {
476 dir: "apistubs/android/system",
477 },
478 dists: [
479 {
480 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000481 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000482 tag: ".jar",
483 dest: "android_system.jar",
484 },
485 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100486}
487
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100488java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000489 name: "android_test_stubs_current.from-source",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000490 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000491 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
492 // include the SystemApi of framework-non-updatable-sources.
493 "all-updatable-modules-system-stubs",
494 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
495 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100496 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100497 "private-stub-annotations-jar",
498 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000499 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100500 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000501 "android_stubs_dists_default",
502 ],
503 dist: {
504 dir: "apistubs/android/test",
505 },
Jiyong Parke3095162019-12-20 15:30:28 +0900506}
507
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100508java_library {
Mark Whitee35b1382023-08-12 01:31:26 +0000509 name: "android_test_frameworks_core_stubs_current.from-source",
510 static_libs: [
511 "all-updatable-modules-system-stubs",
512 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000513 ],
514 defaults: [
515 "android.jar_defaults",
516 "android_stubs_dists_default",
517 ],
518 dist: {
519 dir: "apistubs/android/test-core",
520 },
521}
522
523java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000524 name: "android_module_lib_stubs_current.from-source",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000525 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100526 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000527 "android_stubs_dists_default",
528 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100529 static_libs: [
530 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100531 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000532 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000533 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000534 dist: {
535 dir: "apistubs/android/module-lib",
536 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900537}
538
Andrei Oneafaa271a2021-03-17 13:32:51 +0000539java_library {
Jihoon Kang1453baa2023-05-27 05:32:30 +0000540 name: "android_system_server_stubs_current.from-source",
Anton Hansson21fb1082023-03-03 16:22:42 +0000541 defaults: [
542 "android.jar_defaults",
543 "android_stubs_dists_default",
544 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000545 srcs: [":services-non-updatable-stubs"],
546 installable: false,
547 static_libs: [
Jihoon Kang1453baa2023-05-27 05:32:30 +0000548 "android_module_lib_stubs_current.from-source",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000549 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000550 dist: {
551 dir: "apistubs/android/system-server",
552 },
553}
554
Colin Crosscf87a572022-10-20 14:06:53 -0700555java_library {
556 name: "android_stubs_private_jar",
557 defaults: ["android.jar_defaults"],
558 visibility: [
559 "//visibility:override",
560 "//visibility:private",
561 ],
562 static_libs: [
563 "stable.core.platform.api.stubs",
564 "core-lambda-stubs-for-system-modules",
565 "core-generated-annotation-stubs",
566 "framework",
567 "ext",
568 "framework-res-package-jar",
569 // The order of this matters, it has to be last to provide a
570 // package-private androidx.annotation.RecentlyNonNull without
571 // overriding the public android.annotation.Nullable in framework.jar
572 // with its own package-private android.annotation.Nullable.
573 "private-stub-annotations-jar",
574 ],
575}
576
577java_genrule {
578 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700579 srcs: [":android_stubs_private_jar{.hjar}"],
580 out: ["android_stubs_private.jar"],
581 cmd: "cp $(in) $(out)",
582}
583
584java_library {
585 name: "android_stubs_private",
586 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700587 sdk_version: "none",
588 system_modules: "none",
589 static_libs: ["android_stubs_private_hjar"],
590 dist: {
591 dir: "apistubs/android/private",
592 },
593}
594
595java_genrule {
596 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700597 tools: ["sdkparcelables"],
598 srcs: [":android_stubs_private"],
599 out: ["framework.aidl"],
600 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
601 "for i in $(in); do " +
602 " rm -f $(genDir)/framework.aidl.tmp && " +
603 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp && " +
604 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
605 "done && " +
606 "sort -u $(genDir)/framework.aidl.merged > $(out)",
607 dist: {
608 targets: ["sdk"],
609 dir: "apistubs/android/private",
610 },
611}
612
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000613//
614// Java API defaults and libraries for single tree build
615//
616
617java_defaults {
618 name: "stub-annotation-defaults",
619 libs: [
620 "stub-annotations",
621 ],
622 static_libs: [
623 // stub annotations do not contribute to the API surfaces but are statically
624 // linked in the stubs for API surfaces (see frameworks/base/StubLibraries.bp).
625 // This is because annotation processors insist on loading the classes for any
626 // annotations found, thus should exist inside android.jar.
627 "private-stub-annotations-jar",
628 ],
629}
630
631// Listing of API domains contribution and dependencies per API surfaces
632java_defaults {
633 name: "android_test_stubs_current_contributions",
634 api_surface: "test",
635 api_contributions: [
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000636 "framework-virtualization.stubs.source.test.api.contribution",
Mark White3cc5e002023-08-07 11:18:09 +0000637 "framework-location.stubs.source.test.api.contribution",
Roshan Pius0fa80892023-11-14 14:30:26 -0800638 "framework-nfc.stubs.source.test.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000639 ],
640}
641
642java_defaults {
643 name: "android_test_frameworks_core_stubs_current_contributions",
644 api_surface: "test",
645 api_contributions: [
646 "test-api-stubs-docs-non-updatable.api.contribution",
647 ],
648}
649
650java_defaults {
651 name: "android_module_lib_stubs_current_contributions",
652 api_surface: "module-lib",
653 api_contributions: [
654 "api-stubs-docs-non-updatable.api.contribution",
655 "system-api-stubs-docs-non-updatable.api.contribution",
656 "module-lib-api-stubs-docs-non-updatable.api.contribution",
657 "art.module.public.api.stubs.source.api.contribution",
658 "art.module.public.api.stubs.source.system.api.contribution",
659 "art.module.public.api.stubs.source.module_lib.api.contribution",
660 "i18n.module.public.api.stubs.source.api.contribution",
661 "i18n.module.public.api.stubs.source.system.api.contribution",
662 "i18n.module.public.api.stubs.source.module_lib.api.contribution",
663 ],
664}
665
666// Java API library definitions per API surface
667java_api_library {
668 name: "android_stubs_current.from-text",
669 api_surface: "public",
670 defaults: [
671 // This module is dynamically created at frameworks/base/api/api.go
672 // instead of being written out, in order to minimize edits in the codebase
673 // when there is a change in the list of modules.
674 // that contributes to an api surface.
675 "android_stubs_current_contributions",
676 "stub-annotation-defaults",
677 ],
678 api_contributions: [
679 "api-stubs-docs-non-updatable.api.contribution",
680 ],
681 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000682 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000683}
684
685java_api_library {
686 name: "android_system_stubs_current.from-text",
687 api_surface: "system",
688 defaults: [
689 "android_stubs_current_contributions",
690 "android_system_stubs_current_contributions",
691 "stub-annotation-defaults",
692 ],
693 api_contributions: [
694 "api-stubs-docs-non-updatable.api.contribution",
695 "system-api-stubs-docs-non-updatable.api.contribution",
696 ],
697 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000698 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000699}
700
701java_api_library {
702 name: "android_test_stubs_current.from-text",
703 api_surface: "test",
704 defaults: [
705 "android_stubs_current_contributions",
706 "android_system_stubs_current_contributions",
707 "android_test_stubs_current_contributions",
708 "stub-annotation-defaults",
709 ],
710 api_contributions: [
711 "api-stubs-docs-non-updatable.api.contribution",
712 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang1c5022b2023-09-20 22:02:29 +0000713 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000714 ],
715 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000716 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000717}
718
719java_api_library {
720 name: "android_test_frameworks_core_stubs_current.from-text",
721 api_surface: "test",
722 defaults: [
723 "android_stubs_current_contributions",
724 "android_system_stubs_current_contributions",
725 "android_test_frameworks_core_stubs_current_contributions",
Jihoon Kangbeeb35a2023-10-17 22:22:24 +0000726 ],
727 libs: [
728 "stub-annotations",
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000729 ],
730 api_contributions: [
731 "api-stubs-docs-non-updatable.api.contribution",
732 "system-api-stubs-docs-non-updatable.api.contribution",
733 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000734 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000735}
736
737java_api_library {
738 name: "android_module_lib_stubs_current_full.from-text",
739 api_surface: "module-lib",
740 defaults: [
741 "android_stubs_current_contributions",
742 "android_system_stubs_current_contributions",
743 "android_module_lib_stubs_current_contributions_full",
744 ],
745 libs: [
746 "stub-annotations",
747 ],
748 api_contributions: [
749 "api-stubs-docs-non-updatable.api.contribution",
750 "system-api-stubs-docs-non-updatable.api.contribution",
751 "module-lib-api-stubs-docs-non-updatable.api.contribution",
752 ],
753 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000754 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000755}
756
757java_api_library {
758 name: "android_module_lib_stubs_current.from-text",
759 api_surface: "module-lib",
760 defaults: [
761 "android_module_lib_stubs_current_contributions",
762 ],
763 libs: [
764 "android_module_lib_stubs_current_full.from-text",
765 "stub-annotations",
766 ],
767 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000768 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000769}
770
771java_api_library {
Jihoon Kang4683b142023-10-05 23:42:51 +0000772 name: "android_test_module_lib_stubs_current.from-text",
773 api_surface: "module-lib",
774 defaults: [
775 "android_stubs_current_contributions",
776 "android_system_stubs_current_contributions",
777 "android_test_stubs_current_contributions",
778 "android_module_lib_stubs_current_contributions",
779 ],
780 libs: [
781 "android_module_lib_stubs_current_full.from-text",
782 "stub-annotations",
783 ],
784 api_contributions: [
785 "test-api-stubs-docs-non-updatable.api.contribution",
786 ],
787
788 // This module is only used to build android-non-updatable.stubs.test_module_lib
789 // and other modules should not depend on this module.
790 visibility: [
791 "//visibility:private",
792 ],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000793 enable_validation: false,
Jihoon Kang4683b142023-10-05 23:42:51 +0000794}
795
796java_api_library {
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000797 name: "android_system_server_stubs_current.from-text",
798 api_surface: "system-server",
799 api_contributions: [
800 "services-non-updatable-stubs.api.contribution",
801 ],
802 libs: [
803 "android_module_lib_stubs_current.from-text",
804 "stub-annotations",
805 ],
806 static_libs: [
807 "android_module_lib_stubs_current.from-text",
808 ],
809 visibility: ["//visibility:public"],
Jihoon Kangd67ac472023-10-05 21:18:23 +0000810 enable_validation: false,
Jihoon Kang7b627ed2023-09-21 01:14:17 +0000811}
812
Anton Hansson36bc27c2021-09-14 15:45:13 +0100813////////////////////////////////////////////////////////////////////////
814// api-versions.xml generation, for public and system. This API database
815// also contains the android.test.* APIs.
816////////////////////////////////////////////////////////////////////////
817
818java_library {
819 name: "android_stubs_current_with_test_libs",
820 static_libs: [
821 "android_stubs_current",
822 "android.test.base.stubs",
823 "android.test.mock.stubs",
824 "android.test.runner.stubs",
825 ],
826 defaults: ["android.jar_defaults"],
827 visibility: [
828 "//visibility:override",
829 "//visibility:private",
830 ],
831}
832
833java_library {
834 name: "android_system_stubs_current_with_test_libs",
835 static_libs: [
836 "android_system_stubs_current",
837 "android.test.base.stubs.system",
838 "android.test.mock.stubs.system",
839 "android.test.runner.stubs.system",
840 ],
841 defaults: ["android.jar_defaults"],
842 visibility: [
843 "//visibility:override",
844 "//visibility:private",
845 ],
846}
847
Cole Faustdcda3702022-10-04 14:46:35 -0700848java_library {
849 name: "android_module_stubs_current_with_test_libs",
850 static_libs: [
851 "android_module_lib_stubs_current",
852 "android.test.base.stubs",
853 "android.test.mock.stubs",
854 "android.test.runner.stubs",
855 ],
856 defaults: ["android.jar_defaults"],
857 visibility: [
858 "//visibility:override",
859 "//visibility:private",
860 ],
861}
862
863java_library {
864 name: "android_system_server_stubs_current_with_test_libs",
865 static_libs: [
866 "android_system_server_stubs_current",
867 "android.test.base.stubs.system",
868 "android.test.mock.stubs.system",
869 "android.test.runner.stubs.system",
870 ],
871 defaults: ["android.jar_defaults"],
872 visibility: [
873 "//visibility:override",
874 "//visibility:private",
875 ],
876}
877
Anton Hansson36bc27c2021-09-14 15:45:13 +0100878droidstubs {
879 name: "api_versions_public",
880 srcs: [":android_stubs_current_with_test_libs{.jar}"],
881 generate_stubs: false,
882 api_levels_annotations_enabled: true,
883 api_levels_annotations_dirs: [
884 "sdk-dir",
885 "api-versions-jars-dir",
886 ],
Cole Faustdcda3702022-10-04 14:46:35 -0700887 api_levels_sdk_type: "public",
Mårten Kongstad54845332022-09-06 15:50:37 +0200888 extensions_info_file: ":sdk-extensions-info",
Anton Hanssonca6e67a2023-03-03 17:55:09 +0000889 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +0100890}
891
892droidstubs {
893 name: "api_versions_system",
894 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
895 generate_stubs: false,
896 api_levels_annotations_enabled: true,
897 api_levels_annotations_dirs: [
898 "sdk-dir",
899 "api-versions-jars-dir",
900 ],
901 api_levels_sdk_type: "system",
Mårten Kongstad54845332022-09-06 15:50:37 +0200902 extensions_info_file: ":sdk-extensions-info",
Paul Duffin75f63602024-01-05 18:15:59 +0000903 dists: [
904 // Make the api-versions.xml file for the system API available in the
905 // sdk build target.
906 {
907 targets: ["sdk"],
908 dest: "api-versions_system.xml",
909 tag: ".api_versions.xml",
910 },
911 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +0100912}
913
Cole Faustbf4ce752023-02-08 12:46:06 -0800914// This module can be built with:
Cole Faust24e730f2024-01-08 14:11:11 -0800915// m out/soong/.intermediates/frameworks/base/api/api_versions_module_lib/android_common/metalava/api-versions.xml
Cole Faustdcda3702022-10-04 14:46:35 -0700916droidstubs {
917 name: "api_versions_module_lib",
918 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
919 generate_stubs: false,
920 api_levels_annotations_enabled: true,
Cole Faustbf4ce752023-02-08 12:46:06 -0800921 // this only has the non-updatable portions of the module lib sdk,
922 // which can reference classes from updatable apexes, so remove references to them
923 // from this api_versions file.
924 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faustdcda3702022-10-04 14:46:35 -0700925 api_levels_annotations_dirs: [
926 "sdk-dir",
927 "api-versions-jars-dir",
928 ],
929 api_levels_sdk_type: "module-lib",
Cole Faust1deced12023-02-15 13:24:18 -0800930 // extensions_info_file is purposefully omitted, because this module should just be
931 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -0700932}
933
934droidstubs {
935 name: "api_versions_system_server",
936 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
937 generate_stubs: false,
938 api_levels_annotations_enabled: true,
Cole Faustbf4ce752023-02-08 12:46:06 -0800939 // this only has the non-updatable portions of the system server sdk,
940 // which can reference classes from updatable apexes, so remove references to them
941 // from this api_versions file.
942 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faustdcda3702022-10-04 14:46:35 -0700943 api_levels_annotations_dirs: [
944 "sdk-dir",
945 "api-versions-jars-dir",
946 ],
947 api_levels_sdk_type: "system-server",
Cole Faust1deced12023-02-15 13:24:18 -0800948 // extensions_info_file is purposefully omitted, because this module should just be
949 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -0700950}
951
Jiyong Park7fb4b182019-12-20 14:35:43 +0900952/////////////////////////////////////////////////////////////////////
953// hwbinder.stubs provides APIs required for building HIDL Java
954// libraries.
955/////////////////////////////////////////////////////////////////////
956
957droidstubs {
958 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +0000959 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -0700960 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900961 installable: false,
962 sdk_version: "core_platform",
963 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +0100964 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900965 merge_annotations_dirs: [
966 "metalava-manual",
967 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000968 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +0900969}
970
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100971java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +0900972 name: "hwbinder.stubs",
973 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -0700974 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900975 srcs: [
976 ":hwbinder-stubs-docs",
977 ],
Anton Hansson86925682021-04-14 14:54:43 +0100978 visibility: ["//visibility:public"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900979}