blob: cebeb18b84bbee7c82533216fa297507f85ad562 [file] [log] [blame]
Makoto Onuki3aefe332023-10-06 10:02:07 -07001// Copyright (C) 2023 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// We need this "trampoline" rule to force soong to give a host-side jar to
Makoto Onukic69a84e2023-10-20 10:43:55 -070016// framework-minus-apex.ravenwood-base. Otherwise, soong would mix up the arch (?) and we'd get
Makoto Onuki3aefe332023-10-06 10:02:07 -070017// a dex jar.
18java_library {
19 name: "framework-minus-apex-for-hoststubgen",
20 installable: false, // host only jar.
21 static_libs: [
22 "framework-minus-apex",
23 ],
24 sdk_version: "core_platform",
25 visibility: ["//visibility:private"],
26}
27
28// Generate the stub/impl from framework-all, with hidden APIs.
Makoto Onukic69a84e2023-10-20 10:43:55 -070029java_genrule {
Makoto Onuki3aefe332023-10-06 10:02:07 -070030 name: "framework-minus-apex.ravenwood-base",
31 tools: ["hoststubgen"],
32 cmd: "$(location hoststubgen) " +
Makoto Onukidfade842024-05-02 15:42:08 -070033 "@$(location :ravenwood-standard-options) " +
Makoto Onuki3aefe332023-10-06 10:02:07 -070034
Makoto Onuki623cffb2023-11-29 10:45:06 -080035 "--debug-log $(location hoststubgen_framework-minus-apex.log) " +
Jeff Sharkeyd2cc1912024-02-09 14:37:10 -070036 "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " +
Makoto Onuki434d72822024-04-25 11:03:41 -070037 "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " +
Makoto Onuki623cffb2023-11-29 10:45:06 -080038
Makoto Onuki3aefe332023-10-06 10:02:07 -070039 "--out-impl-jar $(location ravenwood.jar) " +
40
Makoto Onuki134a4152024-06-26 14:21:12 -070041 "--gen-keep-all-file $(location hoststubgen_framework-minus-apex_keep_all.txt) " +
42 "--gen-input-dump-file $(location hoststubgen_framework-minus-apex_dump.txt) " +
Makoto Onuki3aefe332023-10-06 10:02:07 -070043
44 "--in-jar $(location :framework-minus-apex-for-hoststubgen) " +
Makoto Onukidfade842024-05-02 15:42:08 -070045 "--policy-override-file $(location :ravenwood-framework-policies) " +
46 "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ",
Makoto Onuki3aefe332023-10-06 10:02:07 -070047 srcs: [
48 ":framework-minus-apex-for-hoststubgen",
Makoto Onukidfade842024-05-02 15:42:08 -070049 ":ravenwood-framework-policies",
50 ":ravenwood-standard-options",
51 ":ravenwood-annotation-allowed-classes",
Makoto Onuki3aefe332023-10-06 10:02:07 -070052 ],
53 out: [
54 "ravenwood.jar",
Makoto Onuki3aefe332023-10-06 10:02:07 -070055
56 // Following files are created just as FYI.
Makoto Onuki134a4152024-06-26 14:21:12 -070057 "hoststubgen_framework-minus-apex_keep_all.txt",
58 "hoststubgen_framework-minus-apex_dump.txt",
Makoto Onuki623cffb2023-11-29 10:45:06 -080059
60 "hoststubgen_framework-minus-apex.log",
Jeff Sharkeyd2cc1912024-02-09 14:37:10 -070061 "hoststubgen_framework-minus-apex_stats.csv",
Makoto Onuki434d72822024-04-25 11:03:41 -070062 "hoststubgen_framework-minus-apex_apis.csv",
Makoto Onuki3aefe332023-10-06 10:02:07 -070063 ],
Makoto Onuki134a4152024-06-26 14:21:12 -070064 defaults: ["ravenwood-internal-only-visibility-genrule"],
Makoto Onuki3aefe332023-10-06 10:02:07 -070065}
66
67// Extract the impl jar from "framework-minus-apex.ravenwood-base" for subsequent build rules.
Makoto Onukic69a84e2023-10-20 10:43:55 -070068// Note this emits a "device side" output, so that ravenwood tests can (implicitly)
69// depend on it.
70java_genrule {
Makoto Onuki3aefe332023-10-06 10:02:07 -070071 name: "framework-minus-apex.ravenwood",
Makoto Onuki8bcc6282023-12-18 14:03:59 -080072 defaults: ["ravenwood-internal-only-visibility-genrule"],
Makoto Onuki3aefe332023-10-06 10:02:07 -070073 cmd: "cp $(in) $(out)",
74 srcs: [
75 ":framework-minus-apex.ravenwood-base{ravenwood.jar}",
76 ],
77 out: [
78 "framework-minus-apex.ravenwood.jar",
79 ],
Makoto Onuki3aefe332023-10-06 10:02:07 -070080}
Makoto Onukic69a84e2023-10-20 10:43:55 -070081
Jeff Sharkeyed81c782024-01-11 13:29:07 -070082java_library {
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -070083 name: "services.core-for-hoststubgen",
84 installable: false, // host only jar.
85 static_libs: [
86 "services.core",
87 ],
88 sdk_version: "core_platform",
89 visibility: ["//visibility:private"],
90}
91
92java_genrule {
93 name: "services.core.ravenwood-base",
94 tools: ["hoststubgen"],
95 cmd: "$(location hoststubgen) " +
Makoto Onukidfade842024-05-02 15:42:08 -070096 "@$(location :ravenwood-standard-options) " +
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -070097
98 "--debug-log $(location hoststubgen_services.core.log) " +
99 "--stats-file $(location hoststubgen_services.core_stats.csv) " +
Makoto Onuki434d72822024-04-25 11:03:41 -0700100 "--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " +
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700101
102 "--out-impl-jar $(location ravenwood.jar) " +
103
Makoto Onuki134a4152024-06-26 14:21:12 -0700104 "--gen-keep-all-file $(location hoststubgen_services.core_keep_all.txt) " +
105 "--gen-input-dump-file $(location hoststubgen_services.core_dump.txt) " +
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700106
107 "--in-jar $(location :services.core-for-hoststubgen) " +
Makoto Onukidfade842024-05-02 15:42:08 -0700108 "--policy-override-file $(location :ravenwood-services-policies) " +
109 "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ",
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700110 srcs: [
111 ":services.core-for-hoststubgen",
Makoto Onukidfade842024-05-02 15:42:08 -0700112 ":ravenwood-services-policies",
113 ":ravenwood-standard-options",
114 ":ravenwood-annotation-allowed-classes",
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700115 ],
116 out: [
117 "ravenwood.jar",
118
119 // Following files are created just as FYI.
Makoto Onuki134a4152024-06-26 14:21:12 -0700120 "hoststubgen_services.core_keep_all.txt",
121 "hoststubgen_services.core_dump.txt",
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700122
123 "hoststubgen_services.core.log",
124 "hoststubgen_services.core_stats.csv",
Makoto Onuki434d72822024-04-25 11:03:41 -0700125 "hoststubgen_services.core_apis.csv",
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700126 ],
Makoto Onuki134a4152024-06-26 14:21:12 -0700127 defaults: ["ravenwood-internal-only-visibility-genrule"],
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700128}
129
130java_genrule {
131 name: "services.core.ravenwood",
132 defaults: ["ravenwood-internal-only-visibility-genrule"],
133 cmd: "cp $(in) $(out)",
134 srcs: [
135 ":services.core.ravenwood-base{ravenwood.jar}",
136 ],
137 out: [
138 "services.core.ravenwood.jar",
139 ],
140}
141
142java_library {
143 name: "services.core.ravenwood-jarjar",
Makoto Onukie5e97272024-05-23 10:49:31 -0700144 defaults: ["ravenwood-internal-only-visibility-java"],
Jeff Sharkey3e91c2b2024-02-15 14:12:07 -0700145 installable: false,
146 static_libs: [
147 "services.core.ravenwood",
148 ],
149 jarjar_rules: ":ravenwood-services-jarjar-rules",
Jeff Sharkeyed81c782024-01-11 13:29:07 -0700150}
151
Makoto Onuki053eac82024-02-13 10:31:18 -0800152// Jars in "ravenwood-runtime" are set to the classpath, sorted alphabetically.
153// Rename some of the dependencies to make sure they're included in the intended order.
Makoto Onukif38d5992024-05-30 10:40:50 -0700154// Also apply jarjar.
155java_library {
Makoto Onuki053eac82024-02-13 10:31:18 -0800156 name: "100-framework-minus-apex.ravenwood",
Makoto Onukif38d5992024-05-30 10:40:50 -0700157 defaults: ["ravenwood-internal-only-visibility-java"],
158 static_libs: [
159 "framework-minus-apex.ravenwood",
160 ],
161 sdk_version: "core_platform",
Makoto Onuki7645fa82024-08-02 10:47:55 -0700162 // See b/313930116. Jarjar is too slow on this jar. We use HostStubGen to do the rename.
163 // jarjar_rules: ":ravenwood-framework-jarjar-rules",
Makoto Onuki053eac82024-02-13 10:31:18 -0800164}
165
166java_genrule {
167 // Use 200 to make sure it comes before the mainline stub ("all-updatable...").
168 name: "200-kxml2-android",
Makoto Onukie5e97272024-05-23 10:49:31 -0700169 defaults: ["ravenwood-internal-only-visibility-genrule"],
Makoto Onuki053eac82024-02-13 10:31:18 -0800170 cmd: "cp $(in) $(out)",
171 srcs: [":kxml2-android"],
172 out: ["200-kxml2-android.jar"],
Makoto Onuki053eac82024-02-13 10:31:18 -0800173}
174
Makoto Onukid8231fe2024-05-10 12:49:24 -0700175java_genrule {
176 name: "z00-all-updatable-modules-system-stubs",
Makoto Onukie5e97272024-05-23 10:49:31 -0700177 defaults: ["ravenwood-internal-only-visibility-genrule"],
Makoto Onukid8231fe2024-05-10 12:49:24 -0700178 cmd: "cp $(in) $(out)",
179 srcs: [":all-updatable-modules-system-stubs"],
180 out: ["z00-all-updatable-modules-system-stubs.jar"],
Makoto Onukic69a84e2023-10-20 10:43:55 -0700181}