blob: 70f995a44c86d0fbe884052149a9fc98dbe32427 [file] [log] [blame]
Anton Hanssonfcb91d42020-09-21 16:32:14 +01001// Copyright (C) 2020 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
15package {
16 default_visibility: ["//visibility:private"],
Bob Badour8a6a2bc2021-02-12 17:07:05 -080017 // See: http://go/android-license-faq
18 // A large-scale-change added 'default_applicable_licenses' to import
19 // all of the 'license_kinds' from "frameworks_base_license"
20 // to get the below license kinds:
21 // SPDX-license-identifier-Apache-2.0
22 // SPDX-license-identifier-MIT
23 // SPDX-license-identifier-Unicode-DFS
24 default_applicable_licenses: ["frameworks_base_license"],
Anton Hanssonfcb91d42020-09-21 16:32:14 +010025}
26
Anton Hansson0860aaf2021-10-08 16:48:03 +010027bootstrap_go_package {
28 name: "soong-api",
29 pkgPath: "android/soong/api",
30 deps: [
31 "blueprint",
32 "soong",
33 "soong-android",
34 "soong-genrule",
35 ],
36 srcs: ["api.go"],
37 pluginFor: ["soong_build"],
38}
39
Anton Hanssone6737842021-09-27 12:18:20 +010040python_defaults {
41 name: "python3_version_defaults",
Pedro Loureirob91f45d2021-05-26 15:50:07 +000042 version: {
43 py2: {
44 enabled: false,
45 },
46 py3: {
47 enabled: true,
48 embedded_launcher: false,
49 },
50 },
51}
52
Anton Hanssone6737842021-09-27 12:18:20 +010053python_binary_host {
54 name: "api_versions_trimmer",
55 srcs: ["api_versions_trimmer.py"],
56 defaults: ["python3_version_defaults"],
57}
58
Pedro Loureirob91f45d2021-05-26 15:50:07 +000059python_test_host {
60 name: "api_versions_trimmer_unittests",
61 main: "api_versions_trimmer_unittests.py",
62 srcs: [
63 "api_versions_trimmer_unittests.py",
64 "api_versions_trimmer.py",
65 ],
Anton Hanssone6737842021-09-27 12:18:20 +010066 defaults: ["python3_version_defaults"],
Pedro Loureirob91f45d2021-05-26 15:50:07 +000067 test_options: {
68 unit_test: true,
69 },
Anton Hanssone6737842021-09-27 12:18:20 +010070}
71
72python_binary_host {
73 name: "merge_annotation_zips",
74 srcs: ["merge_annotation_zips.py"],
75 defaults: ["python3_version_defaults"],
76}
77
78python_test_host {
79 name: "merge_annotation_zips_test",
80 main: "merge_annotation_zips_test.py",
81 srcs: [
82 "merge_annotation_zips.py",
83 "merge_annotation_zips_test.py",
84 ],
85 defaults: ["python3_version_defaults"],
86 test_options: {
87 unit_test: true,
Pedro Loureirob91f45d2021-05-26 15:50:07 +000088 },
89}
90
Anton Hanssonaa26cc12021-02-15 10:52:33 +000091metalava_cmd = "$(location metalava)"
92// Silence reflection warnings. See b/168689341
93metalava_cmd += " -J--add-opens=java.base/java.util=ALL-UNNAMED "
Anton Hanssonb8ce0812021-08-24 12:08:39 +010094metalava_cmd += " --quiet --no-banner --format=v2 "
Anton Hanssonaa26cc12021-02-15 10:52:33 +000095
Sasha Smundak02cbff442019-08-15 08:27:51 -070096genrule {
97 name: "current-api-xml",
98 tools: ["metalava"],
Anton Hansson00febe22020-11-05 10:30:59 +000099 srcs: [":frameworks-base-api-current.txt"],
Sasha Smundak02cbff442019-08-15 08:27:51 -0700100 out: ["current.api"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000101 cmd: metalava_cmd + "-convert2xmlnostrip $(in) $(out)",
Anton Hanssonfcb91d42020-09-21 16:32:14 +0100102 visibility: ["//visibility:public"],
Sasha Smundak02cbff442019-08-15 08:27:51 -0700103}
Anton Hansson85359f62020-09-21 17:02:25 +0100104
105genrule {
Anton Hansson1c4fab42020-11-02 11:57:33 +0000106 name: "frameworks-base-api-current.txt",
Anton Hansson85359f62020-09-21 17:02:25 +0100107 srcs: [
Yan Yan1357a422021-02-03 16:07:30 -0800108 ":android.net.ipsec.ike{.public.api.txt}",
Anton Hanssonfc948d862020-12-17 16:57:35 +0000109 ":art.module.public.api{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100110 ":conscrypt.module.public.api{.public.api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100111 ":framework-appsearch{.public.api.txt}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900112 ":framework-connectivity{.public.api.txt}",
paulhuf45fe962021-12-14 23:09:55 +0800113 ":framework-connectivity-tiramisu{.public.api.txt}",
Anton Hansson0eccccb2020-09-24 12:09:25 +0100114 ":framework-graphics{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100115 ":framework-media{.public.api.txt}",
116 ":framework-mediaprovider{.public.api.txt}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700117 ":framework-nearby{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100118 ":framework-permission{.public.api.txt}",
Hai Zhang591e1212021-01-21 12:48:43 -0800119 ":framework-permission-s{.public.api.txt}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000120 ":framework-scheduling{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100121 ":framework-sdkextensions{.public.api.txt}",
122 ":framework-statsd{.public.api.txt}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000123 ":framework-supplementalprocess{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100124 ":framework-tethering{.public.api.txt}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700125 ":framework-uwb{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100126 ":framework-wifi{.public.api.txt}",
Paul Duffin5a4e8f22020-11-25 15:45:43 +0000127 ":i18n.module.public.api{.public.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100128 ":non-updatable-current.txt",
129 ],
130 out: ["current.txt"],
131 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000132 cmd: metalava_cmd + "$(in) --api $(out)",
Anton Hanssona9ced802020-10-20 19:26:18 +0100133 dists: [
134 {
135 targets: ["droidcore"],
136 dir: "api",
137 dest: "current.txt",
138 },
139 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000140 targets: ["sdk"],
Anton Hanssona9ced802020-10-20 19:26:18 +0100141 dir: "apistubs/android/public/api",
142 dest: "android.txt",
143 },
144 ],
Anton Hansson1c4fab42020-11-02 11:57:33 +0000145 visibility: ["//visibility:public"],
Anton Hansson85359f62020-09-21 17:02:25 +0100146}
147
148genrule {
Anton Hansson0d6eae62021-02-12 16:47:18 +0000149 name: "frameworks-base-api-current-compat",
150 srcs: [
151 ":android.api.public.latest",
152 ":android-incompatibilities.api.public.latest",
153 ":frameworks-base-api-current.txt",
154 ],
Anton Hanssonb8ce0812021-08-24 12:08:39 +0100155 out: ["updated-baseline.txt"],
Anton Hansson0d6eae62021-02-12 16:47:18 +0000156 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000157 cmd: metalava_cmd +
Anton Hansson0d6eae62021-02-12 16:47:18 +0000158 "--check-compatibility:api:released $(location :android.api.public.latest) " +
159 "--baseline:compatibility:released $(location :android-incompatibilities.api.public.latest) " +
Anton Hanssonb8ce0812021-08-24 12:08:39 +0100160 "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " +
161 "$(location :frameworks-base-api-current.txt)",
Anton Hansson0d6eae62021-02-12 16:47:18 +0000162}
163
164genrule {
Anton Hansson89c74dc2020-11-05 20:21:08 +0000165 name: "frameworks-base-api-current.srcjar",
166 srcs: [
Yan Yan1357a422021-02-03 16:07:30 -0800167 ":android.net.ipsec.ike{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000168 ":api-stubs-docs-non-updatable",
Anton Hanssonfc948d862020-12-17 16:57:35 +0000169 ":art.module.public.api{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000170 ":conscrypt.module.public.api{.public.stubs.source}",
171 ":framework-appsearch{.public.stubs.source}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900172 ":framework-connectivity{.public.stubs.source}",
paulhuf45fe962021-12-14 23:09:55 +0800173 ":framework-connectivity-tiramisu{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000174 ":framework-graphics{.public.stubs.source}",
175 ":framework-media{.public.stubs.source}",
176 ":framework-mediaprovider{.public.stubs.source}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700177 ":framework-nearby{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000178 ":framework-permission{.public.stubs.source}",
Hai Zhang591e1212021-01-21 12:48:43 -0800179 ":framework-permission-s{.public.stubs.source}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000180 ":framework-scheduling{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000181 ":framework-sdkextensions{.public.stubs.source}",
182 ":framework-statsd{.public.stubs.source}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000183 ":framework-supplementalprocess{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000184 ":framework-tethering{.public.stubs.source}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700185 ":framework-uwb{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000186 ":framework-wifi{.public.stubs.source}",
Paul Duffin5a4e8f22020-11-25 15:45:43 +0000187 ":i18n.module.public.api{.public.stubs.source}",
Anton Hansson89c74dc2020-11-05 20:21:08 +0000188 ],
189 out: ["current.srcjar"],
190 tools: ["merge_zips"],
191 cmd: "$(location merge_zips) $(out) $(in)",
192 visibility: ["//visibility:private"], // Used by make module in //development, mind.
193}
194
195genrule {
Anton Hansson1c4fab42020-11-02 11:57:33 +0000196 name: "frameworks-base-api-removed.txt",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100197 srcs: [
Yan Yan1357a422021-02-03 16:07:30 -0800198 ":android.net.ipsec.ike{.public.removed-api.txt}",
Anton Hanssonfc948d862020-12-17 16:57:35 +0000199 ":art.module.public.api{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100200 ":conscrypt.module.public.api{.public.removed-api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100201 ":framework-appsearch{.public.removed-api.txt}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900202 ":framework-connectivity{.public.removed-api.txt}",
paulhuf45fe962021-12-14 23:09:55 +0800203 ":framework-connectivity-tiramisu{.public.removed-api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100204 ":framework-graphics{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100205 ":framework-media{.public.removed-api.txt}",
206 ":framework-mediaprovider{.public.removed-api.txt}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700207 ":framework-nearby{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100208 ":framework-permission{.public.removed-api.txt}",
Hai Zhang591e1212021-01-21 12:48:43 -0800209 ":framework-permission-s{.public.removed-api.txt}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000210 ":framework-scheduling{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100211 ":framework-sdkextensions{.public.removed-api.txt}",
212 ":framework-statsd{.public.removed-api.txt}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000213 ":framework-supplementalprocess{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100214 ":framework-tethering{.public.removed-api.txt}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700215 ":framework-uwb{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100216 ":framework-wifi{.public.removed-api.txt}",
Paul Duffin5a4e8f22020-11-25 15:45:43 +0000217 ":i18n.module.public.api{.public.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100218 ":non-updatable-removed.txt",
219 ],
220 out: ["removed.txt"],
221 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000222 cmd: metalava_cmd + "$(in) --api $(out)",
Anton Hanssona9ced802020-10-20 19:26:18 +0100223 dists: [
224 {
225 targets: ["droidcore"],
226 dir: "api",
227 dest: "removed.txt",
228 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000229 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000230 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000231 dir: "apistubs/android/public/api",
232 dest: "removed.txt",
233 },
Anton Hanssona9ced802020-10-20 19:26:18 +0100234 ],
Anton Hansson3c1aa112020-09-25 09:13:47 +0100235}
236
237genrule {
Anton Hansson1c4fab42020-11-02 11:57:33 +0000238 name: "frameworks-base-api-system-current.txt",
Anton Hansson85359f62020-09-21 17:02:25 +0100239 srcs: [
Victor Chang9f5cdff2021-05-12 10:47:16 +0100240 ":art.module.public.api{.system.api.txt}",
Yan Yan1357a422021-02-03 16:07:30 -0800241 ":android.net.ipsec.ike{.system.api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100242 ":framework-appsearch{.system.api.txt}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900243 ":framework-connectivity{.system.api.txt}",
paulhuf45fe962021-12-14 23:09:55 +0800244 ":framework-connectivity-tiramisu{.system.api.txt}",
Anton Hansson0eccccb2020-09-24 12:09:25 +0100245 ":framework-graphics{.system.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100246 ":framework-media{.system.api.txt}",
247 ":framework-mediaprovider{.system.api.txt}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700248 ":framework-nearby{.system.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100249 ":framework-permission{.system.api.txt}",
Hai Zhang591e1212021-01-21 12:48:43 -0800250 ":framework-permission-s{.system.api.txt}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000251 ":framework-scheduling{.system.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100252 ":framework-sdkextensions{.system.api.txt}",
253 ":framework-statsd{.system.api.txt}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000254 ":framework-supplementalprocess{.system.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100255 ":framework-tethering{.system.api.txt}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700256 ":framework-uwb{.system.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100257 ":framework-wifi{.system.api.txt}",
258 ":non-updatable-system-current.txt",
259 ],
260 out: ["system-current.txt"],
261 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000262 cmd: metalava_cmd + "$(in) --api $(out)",
Anton Hanssona9ced802020-10-20 19:26:18 +0100263 dists: [
264 {
265 targets: ["droidcore"],
266 dir: "api",
267 dest: "system-current.txt",
268 },
269 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000270 targets: ["sdk"],
Anton Hanssona9ced802020-10-20 19:26:18 +0100271 dir: "apistubs/android/system/api",
272 dest: "android.txt",
273 },
274 ],
Anton Hansson1c4fab42020-11-02 11:57:33 +0000275 visibility: ["//visibility:public"],
Anton Hansson85359f62020-09-21 17:02:25 +0100276}
277
278genrule {
Anton Hansson0d6eae62021-02-12 16:47:18 +0000279 name: "frameworks-base-api-system-current-compat",
280 srcs: [
281 ":android.api.system.latest",
282 ":android-incompatibilities.api.system.latest",
283 ":frameworks-base-api-current.txt",
284 ":frameworks-base-api-system-current.txt",
285 ],
Anton Hanssonb8ce0812021-08-24 12:08:39 +0100286 out: ["updated-baseline.txt"],
Anton Hansson0d6eae62021-02-12 16:47:18 +0000287 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000288 cmd: metalava_cmd +
Anton Hansson0d6eae62021-02-12 16:47:18 +0000289 "--check-compatibility:api:released $(location :android.api.system.latest) " +
290 "--check-compatibility:base $(location :frameworks-base-api-current.txt) " +
291 "--baseline:compatibility:released $(location :android-incompatibilities.api.system.latest) " +
Anton Hanssonb8ce0812021-08-24 12:08:39 +0100292 "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " +
293 "$(location :frameworks-base-api-system-current.txt)",
Anton Hansson0d6eae62021-02-12 16:47:18 +0000294}
295
296genrule {
Anton Hansson1c4fab42020-11-02 11:57:33 +0000297 name: "frameworks-base-api-system-removed.txt",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100298 srcs: [
Victor Chang9f5cdff2021-05-12 10:47:16 +0100299 ":art.module.public.api{.system.removed-api.txt}",
Yan Yan1357a422021-02-03 16:07:30 -0800300 ":android.net.ipsec.ike{.system.removed-api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100301 ":framework-appsearch{.system.removed-api.txt}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900302 ":framework-connectivity{.system.removed-api.txt}",
paulhuf45fe962021-12-14 23:09:55 +0800303 ":framework-connectivity-tiramisu{.system.removed-api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100304 ":framework-graphics{.system.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100305 ":framework-media{.system.removed-api.txt}",
306 ":framework-mediaprovider{.system.removed-api.txt}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700307 ":framework-nearby{.system.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100308 ":framework-permission{.system.removed-api.txt}",
Hai Zhang591e1212021-01-21 12:48:43 -0800309 ":framework-permission-s{.system.removed-api.txt}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000310 ":framework-scheduling{.system.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100311 ":framework-sdkextensions{.system.removed-api.txt}",
312 ":framework-statsd{.system.removed-api.txt}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000313 ":framework-supplementalprocess{.system.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100314 ":framework-tethering{.system.removed-api.txt}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700315 ":framework-uwb{.system.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100316 ":framework-wifi{.system.removed-api.txt}",
317 ":non-updatable-system-removed.txt",
318 ],
319 out: ["system-removed.txt"],
320 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000321 cmd: metalava_cmd + "$(in) --api $(out)",
Anton Hanssona9ced802020-10-20 19:26:18 +0100322 dists: [
323 {
324 targets: ["droidcore"],
325 dir: "api",
326 dest: "system-removed.txt",
327 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000328 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000329 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000330 dir: "apistubs/android/system/api",
331 dest: "removed.txt",
332 },
Anton Hanssona9ced802020-10-20 19:26:18 +0100333 ],
Anton Hansson1c4fab42020-11-02 11:57:33 +0000334 visibility: ["//visibility:public"],
Anton Hansson3c1aa112020-09-25 09:13:47 +0100335}
336
337genrule {
Anton Hansson1c4fab42020-11-02 11:57:33 +0000338 name: "frameworks-base-api-module-lib-current.txt",
Anton Hansson85359f62020-09-21 17:02:25 +0100339 srcs: [
Victor Chang9f5cdff2021-05-12 10:47:16 +0100340 ":art.module.public.api{.module-lib.api.txt}",
Yan Yan1357a422021-02-03 16:07:30 -0800341 ":android.net.ipsec.ike{.module-lib.api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100342 ":framework-appsearch{.module-lib.api.txt}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900343 ":framework-connectivity{.module-lib.api.txt}",
paulhuf45fe962021-12-14 23:09:55 +0800344 ":framework-connectivity-tiramisu{.module-lib.api.txt}",
Anton Hansson0eccccb2020-09-24 12:09:25 +0100345 ":framework-graphics{.module-lib.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100346 ":framework-media{.module-lib.api.txt}",
347 ":framework-mediaprovider{.module-lib.api.txt}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700348 ":framework-nearby{.module-lib.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100349 ":framework-permission{.module-lib.api.txt}",
Hai Zhang591e1212021-01-21 12:48:43 -0800350 ":framework-permission-s{.module-lib.api.txt}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000351 ":framework-scheduling{.module-lib.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100352 ":framework-sdkextensions{.module-lib.api.txt}",
353 ":framework-statsd{.module-lib.api.txt}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000354 ":framework-supplementalprocess{.module-lib.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100355 ":framework-tethering{.module-lib.api.txt}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700356 ":framework-uwb{.module-lib.api.txt}",
Anton Hansson85359f62020-09-21 17:02:25 +0100357 ":framework-wifi{.module-lib.api.txt}",
358 ":non-updatable-module-lib-current.txt",
359 ],
360 out: ["module-lib-current.txt"],
361 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000362 cmd: metalava_cmd + "$(in) --api $(out)",
Anton Hanssona9ced802020-10-20 19:26:18 +0100363 dists: [
364 {
365 targets: ["droidcore"],
366 dir: "api",
367 dest: "module-lib-current.txt",
368 },
369 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000370 targets: ["sdk"],
Anton Hanssona9ced802020-10-20 19:26:18 +0100371 dir: "apistubs/android/module-lib/api",
372 dest: "android.txt",
373 },
374 ],
Anton Hansson85359f62020-09-21 17:02:25 +0100375}
Anton Hansson3c1aa112020-09-25 09:13:47 +0100376
377genrule {
Anton Hansson0d6eae62021-02-12 16:47:18 +0000378 name: "frameworks-base-api-module-lib-current-compat",
379 srcs: [
380 ":android.api.module-lib.latest",
381 ":android-incompatibilities.api.module-lib.latest",
382 ":frameworks-base-api-current.txt",
383 ":frameworks-base-api-module-lib-current.txt",
384 ],
Anton Hanssonb8ce0812021-08-24 12:08:39 +0100385 out: ["updated-baseline.txt"],
Anton Hansson0d6eae62021-02-12 16:47:18 +0000386 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000387 cmd: metalava_cmd +
Anton Hansson0d6eae62021-02-12 16:47:18 +0000388 "--check-compatibility:api:released $(location :android.api.module-lib.latest) " +
389 // Note: having "public" be the base of module-lib is not perfect -- it should
390 // ideally be a merged public+system), but this will help when migrating from
391 // MODULE_LIBS -> public.
392 "--check-compatibility:base $(location :frameworks-base-api-current.txt) " +
393 "--baseline:compatibility:released $(location :android-incompatibilities.api.module-lib.latest) " +
Anton Hanssonb8ce0812021-08-24 12:08:39 +0100394 "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " +
395 "$(location :frameworks-base-api-module-lib-current.txt)",
Anton Hansson0d6eae62021-02-12 16:47:18 +0000396}
397
398genrule {
Anton Hansson1c4fab42020-11-02 11:57:33 +0000399 name: "frameworks-base-api-module-lib-removed.txt",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100400 srcs: [
Victor Chang9f5cdff2021-05-12 10:47:16 +0100401 ":art.module.public.api{.module-lib.removed-api.txt}",
Yan Yan1357a422021-02-03 16:07:30 -0800402 ":android.net.ipsec.ike{.module-lib.removed-api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100403 ":framework-appsearch{.module-lib.removed-api.txt}",
Remi NGUYEN VAN9f223cb2021-01-28 13:37:03 +0900404 ":framework-connectivity{.module-lib.removed-api.txt}",
paulhuf45fe962021-12-14 23:09:55 +0800405 ":framework-connectivity-tiramisu{.module-lib.removed-api.txt}",
Anton Hanssond74139e2020-10-08 14:59:17 +0100406 ":framework-graphics{.module-lib.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100407 ":framework-media{.module-lib.removed-api.txt}",
408 ":framework-mediaprovider{.module-lib.removed-api.txt}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700409 ":framework-nearby{.module-lib.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100410 ":framework-permission{.module-lib.removed-api.txt}",
Hai Zhang591e1212021-01-21 12:48:43 -0800411 ":framework-permission-s{.module-lib.removed-api.txt}",
Gavin Corkery338545d2021-02-15 20:22:58 +0000412 ":framework-scheduling{.module-lib.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100413 ":framework-sdkextensions{.module-lib.removed-api.txt}",
414 ":framework-statsd{.module-lib.removed-api.txt}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000415 ":framework-supplementalprocess{.module-lib.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100416 ":framework-tethering{.module-lib.removed-api.txt}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700417 ":framework-uwb{.module-lib.removed-api.txt}",
Anton Hansson3c1aa112020-09-25 09:13:47 +0100418 ":framework-wifi{.module-lib.removed-api.txt}",
419 ":non-updatable-module-lib-removed.txt",
420 ],
421 out: ["module-lib-removed.txt"],
422 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000423 cmd: metalava_cmd + "$(in) --api $(out)",
Anton Hanssona9ced802020-10-20 19:26:18 +0100424 dists: [
425 {
426 targets: ["droidcore"],
427 dir: "api",
428 dest: "module-lib-removed.txt",
429 },
Anton Hansson85785fe2021-01-20 20:23:34 +0000430 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000431 targets: ["sdk"],
Anton Hansson85785fe2021-01-20 20:23:34 +0000432 dir: "apistubs/android/module-lib/api",
433 dest: "removed.txt",
434 },
Anton Hanssona9ced802020-10-20 19:26:18 +0100435 ],
Anton Hansson3c1aa112020-09-25 09:13:47 +0100436}
Anton Hanssona15427a2020-10-02 18:21:14 +0100437
438genrule {
439 name: "combined-removed-dex",
Paul Duffin81af1f52021-04-08 19:22:50 +0100440 visibility: [
441 "//frameworks/base/boot",
442 ],
Anton Hanssona15427a2020-10-02 18:21:14 +0100443 srcs: [
Anton Hansson1c4fab42020-11-02 11:57:33 +0000444 ":frameworks-base-api-removed.txt",
445 ":frameworks-base-api-system-removed.txt",
Anton Hanssona15427a2020-10-02 18:21:14 +0100446 ":android.car-stubs-docs{.removed-api.txt}",
447 ":android.car-system-stubs-docs{.removed-api.txt}",
448 ],
449 tool_files: ["gen_combined_removed_dex.sh"],
450 tools: ["metalava"],
451 out: ["combined-removed-dex.txt"],
452 cmd: "$(location gen_combined_removed_dex.sh) $(location metalava) $(genDir) $(in) > $(out)",
453}
Andrei Oneadcb54462021-02-19 16:28:30 +0000454
455genrule {
Anton Hanssonabce6f02021-10-08 16:14:25 +0100456 name: "frameworks-base-api-system-server-current.txt",
Andrei Oneadcb54462021-02-19 16:28:30 +0000457 srcs: [
Andrei Onea7e609d42021-03-12 17:02:49 +0000458 ":service-media-s{.system-server.api.txt}",
Andrei Oneadcb54462021-02-19 16:28:30 +0000459 ":service-permission{.system-server.api.txt}",
460 ":non-updatable-system-server-current.txt",
461 ],
462 out: ["system-server-current.txt"],
463 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000464 cmd: metalava_cmd + "$(in) --api $(out)",
Andrei Oneadcb54462021-02-19 16:28:30 +0000465 dists: [
466 {
467 targets: ["droidcore"],
468 dir: "api",
469 dest: "system-server-current.txt",
470 },
471 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000472 targets: ["sdk"],
Andrei Oneadcb54462021-02-19 16:28:30 +0000473 dir: "apistubs/android/system-server/api",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000474 dest: "android.txt",
Andrei Oneadcb54462021-02-19 16:28:30 +0000475 },
476 ],
477}
478
479genrule {
Anton Hanssonabce6f02021-10-08 16:14:25 +0100480 name: "frameworks-base-api-system-server-removed.txt",
Andrei Oneadcb54462021-02-19 16:28:30 +0000481 srcs: [
Andrei Onea7e609d42021-03-12 17:02:49 +0000482 ":service-media-s{.system-server.removed-api.txt}",
Andrei Oneadcb54462021-02-19 16:28:30 +0000483 ":service-permission{.system-server.removed-api.txt}",
484 ":non-updatable-system-server-removed.txt",
485 ],
486 out: ["system-server-removed.txt"],
487 tools: ["metalava"],
Anton Hanssonaa26cc12021-02-15 10:52:33 +0000488 cmd: metalava_cmd + "$(in) --api $(out)",
Andrei Oneadcb54462021-02-19 16:28:30 +0000489 dists: [
490 {
491 targets: ["droidcore"],
492 dir: "api",
493 dest: "system-server-removed.txt",
494 },
495 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000496 targets: ["sdk"],
Andrei Oneadcb54462021-02-19 16:28:30 +0000497 dir: "apistubs/android/system-server/api",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000498 dest: "removed.txt",
Andrei Oneadcb54462021-02-19 16:28:30 +0000499 },
500 ],
501}
Pedro Loureirob91f45d2021-05-26 15:50:07 +0000502
503// This rule will filter classes present in the jar files of mainline modules
504// from the lint database in api-versions.xml.
505// This is done to reduce the number of false positive NewApi findings in
506// java libraries that compile against the module SDK
507genrule {
508 name: "api-versions-xml-public-filtered",
509 srcs: [
510 // Note: order matters: first parameter is the full api-versions.xml
511 // after that the stubs files in any order
512 // stubs files are all modules that export API surfaces EXCEPT ART
513 ":framework-doc-stubs{.api_versions.xml}",
514 ":android.net.ipsec.ike.stubs{.jar}",
515 ":conscrypt.module.public.api.stubs{.jar}",
516 ":framework-appsearch.stubs{.jar}",
517 ":framework-connectivity.stubs{.jar}",
paulhuf45fe962021-12-14 23:09:55 +0800518 ":framework-connectivity-tiramisu.stubs{.jar}",
Pedro Loureirob91f45d2021-05-26 15:50:07 +0000519 ":framework-graphics.stubs{.jar}",
520 ":framework-media.stubs{.jar}",
521 ":framework-mediaprovider.stubs{.jar}",
Chun Zhanga615ce52021-10-29 14:57:55 -0700522 ":framework-nearby.stubs{.jar}",
Pedro Loureirob91f45d2021-05-26 15:50:07 +0000523 ":framework-permission.stubs{.jar}",
524 ":framework-permission-s.stubs{.jar}",
525 ":framework-scheduling.stubs{.jar}",
526 ":framework-sdkextensions.stubs{.jar}",
527 ":framework-statsd.stubs{.jar}",
Gavin Corkerybc006442021-11-16 22:33:10 +0000528 ":framework-supplementalprocess.stubs{.jar}",
Pedro Loureirob91f45d2021-05-26 15:50:07 +0000529 ":framework-tethering.stubs{.jar}",
Roshan Pius6c580dd2021-07-29 21:31:23 -0700530 ":framework-uwb.stubs{.jar}",
Pedro Loureirob91f45d2021-05-26 15:50:07 +0000531 ":framework-wifi.stubs{.jar}",
532 ":i18n.module.public.api.stubs{.jar}",
533 ],
534 out: ["api-versions-public-filtered.xml"],
535 tools: ["api_versions_trimmer"],
536 cmd: "$(location api_versions_trimmer) $(out) $(in)",
537 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000538 targets: ["sdk"],
Pedro Loureirob91f45d2021-05-26 15:50:07 +0000539 },
540}