blob: 5825ead95c67adab268b61d6cbdd2761e5107063 [file] [log] [blame]
David Sehr334b9d72018-02-12 18:27:56 -08001//
2// Copyright (C) 2011 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
Bob Badour9150de62021-02-26 03:22:24 -080017package {
18 // See: http://go/android-license-faq
19 // A large-scale-change added 'default_applicable_licenses' to import
20 // all of the 'license_kinds' from "art_license"
21 // to get the below license kinds:
22 // SPDX-license-identifier-Apache-2.0
23 default_applicable_licenses: ["art_license"],
24}
25
David Sehr334b9d72018-02-12 18:27:56 -080026cc_defaults {
27 name: "libdexfile_defaults",
28 defaults: ["art_defaults"],
29 host_supported: true,
30 srcs: [
David Sehr1f010162018-05-15 08:59:32 -070031 "dex/art_dex_file_loader.cc",
David Sehr334b9d72018-02-12 18:27:56 -080032 "dex/compact_dex_file.cc",
Mathieu Chartier5e3cfa22018-02-20 16:53:37 -080033 "dex/compact_offset_table.cc",
David Sehr334b9d72018-02-12 18:27:56 -080034 "dex/descriptors_names.cc",
35 "dex/dex_file.cc",
36 "dex/dex_file_exception_helpers.cc",
David Sehrc431b9d2018-03-02 12:01:51 -080037 "dex/dex_file_layout.cc",
David Sehr334b9d72018-02-12 18:27:56 -080038 "dex/dex_file_loader.cc",
39 "dex/dex_file_tracking_registrar.cc",
40 "dex/dex_file_verifier.cc",
41 "dex/dex_instruction.cc",
42 "dex/modifiers.cc",
David Sehr67bf42e2018-02-26 16:43:04 -080043 "dex/primitive.cc",
Andreas Gampead1aa632019-01-02 10:30:54 -080044 "dex/signature.cc",
David Sehr334b9d72018-02-12 18:27:56 -080045 "dex/standard_dex_file.cc",
David Sehr9c4a0152018-04-05 12:23:54 -070046 "dex/type_lookup_table.cc",
David Sehr334b9d72018-02-12 18:27:56 -080047 "dex/utf.cc",
48 ],
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +000049 header_libs: [
50 "jni_headers",
51 "libdexfile_external_headers",
52 ],
53 export_header_lib_headers: [
54 "jni_headers",
55 "libdexfile_external_headers",
56 ],
David Sehr334b9d72018-02-12 18:27:56 -080057 target: {
58 android: {
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +000059 srcs: [
60 "external/dex_file_ext.cc",
61 ],
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +000062 static_libs: [
63 "libziparchive",
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +000064 ],
David Sehr10db8fe2018-07-18 11:01:20 -070065 shared_libs: [
Jiyong Parkb1c8e162020-05-18 19:04:42 +090066 // libz provides a stub from platform, shouldn't be statically linked
67 "libz",
Andreas Gampe0dc93b12019-05-15 10:30:22 -070068 // For MemMap.
69 "libartpalette",
70 "liblog",
71 // For common macros.
72 "libbase",
David Sehr10db8fe2018-07-18 11:01:20 -070073 ],
74 export_shared_lib_headers: [
David Sehr10db8fe2018-07-18 11:01:20 -070075 "libbase",
76 ],
David Sehr334b9d72018-02-12 18:27:56 -080077 },
David Sehr10db8fe2018-07-18 11:01:20 -070078 not_windows: {
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +000079 srcs: [
80 "external/dex_file_ext.cc",
81 ],
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +000082 shared_libs: [
83 "libziparchive",
84 "libz",
Andreas Gampe0dc93b12019-05-15 10:30:22 -070085 // For MemMap.
86 "libartpalette",
87 "liblog",
88 // For common macros.
89 "libbase",
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +000090 ],
David Sehr10db8fe2018-07-18 11:01:20 -070091 export_shared_lib_headers: [
David Sehr10db8fe2018-07-18 11:01:20 -070092 "libbase",
93 ],
94 },
95 windows: {
96 static_libs: [
97 "libziparchive",
98 "libz",
Andreas Gampe0dc93b12019-05-15 10:30:22 -070099 // For MemMap.
100 "libartpalette",
101 "liblog",
102 // For common macros.
103 "libbase",
David Sehr10db8fe2018-07-18 11:01:20 -0700104 ],
105 export_static_lib_headers: [
David Sehr10db8fe2018-07-18 11:01:20 -0700106 "libbase",
107 ],
108 cflags: ["-Wno-thread-safety"],
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +0000109 },
David Srbeckyd53f6062019-03-22 14:55:21 +0000110 darwin: {
111 enabled: true,
112 },
David Sehr334b9d72018-02-12 18:27:56 -0800113 },
114 generated_sources: ["dexfile_operator_srcs"],
David Sehr334b9d72018-02-12 18:27:56 -0800115 export_include_dirs: ["."],
David Sehr334b9d72018-02-12 18:27:56 -0800116}
117
Andreas Gampeec5ed062018-01-26 16:20:02 -0800118cc_defaults {
119 name: "libdexfile_static_base_defaults",
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100120 whole_static_libs: [
Andreas Gampeec5ed062018-01-26 16:20:02 -0800121 "libbase",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800122 "liblog",
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +0000123 "libz",
124 "libziparchive",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800125 ],
126}
127
128cc_defaults {
129 name: "libdexfile_static_defaults",
130 defaults: [
131 "libartbase_static_defaults",
132 "libdexfile_static_base_defaults",
133 ],
Martin Stjernholmb4abe0a2019-05-17 19:22:55 +0100134 defaults_visibility: [
135 "//art:__subpackages__",
Martin Stjernholmb4abe0a2019-05-17 19:22:55 +0100136 ],
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100137 whole_static_libs: ["libdexfile"],
Andreas Gampeec5ed062018-01-26 16:20:02 -0800138}
139
140cc_defaults {
141 name: "libdexfiled_static_defaults",
142 defaults: [
143 "libartbased_static_defaults",
144 "libdexfile_static_base_defaults",
145 ],
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100146 whole_static_libs: ["libdexfiled"],
Andreas Gampeec5ed062018-01-26 16:20:02 -0800147}
148
David Sehr334b9d72018-02-12 18:27:56 -0800149gensrcs {
150 name: "dexfile_operator_srcs",
Alex Lightb69d2d32018-02-21 13:37:17 -0800151 cmd: "$(location generate_operator_out) art/libdexfile $(in) > $(out)",
152 tools: ["generate_operator_out"],
David Sehr334b9d72018-02-12 18:27:56 -0800153 srcs: [
154 "dex/dex_file.h",
David Sehrc431b9d2018-03-02 12:01:51 -0800155 "dex/dex_file_layout.h",
David Sehr334b9d72018-02-12 18:27:56 -0800156 "dex/dex_instruction.h",
157 "dex/dex_instruction_utils.h",
158 "dex/invoke_type.h",
159 ],
160 output_extension: "operator_out.cc",
161}
162
David Sehr334b9d72018-02-12 18:27:56 -0800163art_cc_library {
164 name: "libdexfile",
Christopher Ferrisac97f3e2021-06-17 20:59:10 +0000165 visibility: [
166 // Allow libunwindstack to list this as a runtime library.
167 "//system/unwinding/libunwindstack",
168 ],
Christopher Ferris0d38e852019-12-11 09:37:19 -0800169 defaults: [
170 "libdexfile_defaults",
171 "libart_nativeunwind_defaults",
172 ],
David Sehr10db8fe2018-07-18 11:01:20 -0700173 target: {
David Srbecky7711c352019-04-10 17:50:12 +0100174 android: {
175 shared_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700176 "libartbase",
David Srbecky7711c352019-04-10 17:50:12 +0100177 ],
178 export_shared_lib_headers: [
179 "libartbase",
180 ],
181 },
182 not_windows: {
183 shared_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700184 "libartbase",
David Srbecky7711c352019-04-10 17:50:12 +0100185 ],
186 export_shared_lib_headers: [
187 "libartbase",
188 ],
189 },
David Sehr10db8fe2018-07-18 11:01:20 -0700190 windows: {
191 enabled: true,
192 shared: {
193 enabled: false,
194 },
David Srbecky7711c352019-04-10 17:50:12 +0100195 static_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700196 "libartbase",
David Srbecky7711c352019-04-10 17:50:12 +0100197 ],
198 export_static_lib_headers: [
199 "libartbase",
200 ],
David Sehr10db8fe2018-07-18 11:01:20 -0700201 },
202 },
Jiyong Park066dd9022019-12-19 02:11:59 +0000203 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100204 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +0000205 "com.android.art.debug",
Jiyong Park066dd9022019-12-19 02:11:59 +0000206 ],
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000207 stubs: {
David Srbecky30d4d2f2021-03-24 16:11:49 +0000208 symbol_file: "libdexfile.map.txt",
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000209 versions: ["1"],
210 },
David Sehr334b9d72018-02-12 18:27:56 -0800211}
212
David Sehrfcbe15c2018-02-15 09:41:13 -0800213art_cc_library {
214 name: "libdexfiled",
215 defaults: [
216 "art_debug_defaults",
217 "libdexfile_defaults",
218 ],
David Sehr10db8fe2018-07-18 11:01:20 -0700219 target: {
David Srbecky7711c352019-04-10 17:50:12 +0100220 android: {
221 shared_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700222 "libartbased",
David Srbecky7711c352019-04-10 17:50:12 +0100223 ],
224 export_shared_lib_headers: [
225 "libartbased",
226 ],
227 },
228 not_windows: {
229 shared_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700230 "libartbased",
David Srbecky7711c352019-04-10 17:50:12 +0100231 ],
232 export_shared_lib_headers: [
233 "libartbased",
234 ],
235 },
David Sehr10db8fe2018-07-18 11:01:20 -0700236 windows: {
237 enabled: true,
238 shared: {
239 enabled: false,
240 },
David Srbecky7711c352019-04-10 17:50:12 +0100241 static_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700242 "libartbased",
David Srbecky7711c352019-04-10 17:50:12 +0100243 ],
244 export_static_lib_headers: [
245 "libartbased",
246 ],
David Sehr10db8fe2018-07-18 11:01:20 -0700247 },
248 },
Jiyong Park066dd9022019-12-19 02:11:59 +0000249 apex_available: [
250 "com.android.art.debug",
Martin Stjernholma2f48a42021-04-09 13:23:21 +0100251 // TODO(b/183882457): This lib doesn't go into com.android.art, but
252 // apex_available lists need to be the same for internal libs to avoid
253 // stubs, and libartd depends on this.
254 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +0000255 ],
David Sehrfcbe15c2018-02-15 09:41:13 -0800256}
257
Roland Levillainf0409142021-03-22 15:45:03 +0000258art_cc_defaults {
259 name: "art_libdexfile_tests_defaults",
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000260 srcs: [
261 "dex/art_dex_file_loader_test.cc",
262 "dex/class_accessor_test.cc",
263 "dex/code_item_accessors_test.cc",
264 "dex/compact_dex_file_test.cc",
265 "dex/compact_offset_table_test.cc",
266 "dex/descriptors_names_test.cc",
267 "dex/test_dex_file_builder_test.cc",
268 "dex/dex_file_loader_test.cc",
269 "dex/dex_file_verifier_test.cc",
270 "dex/dex_instruction_test.cc",
271 "dex/primitive_test.cc",
272 "dex/string_reference_test.cc",
273 "dex/type_lookup_table_test.cc",
274 "dex/utf_test.cc",
275 ],
David Srbecky4a88a5a2020-05-05 16:21:57 +0100276 data: [
277 ":art-gtest-jars-GetMethodSignature",
278 ":art-gtest-jars-Lookup",
279 ":art-gtest-jars-Main",
280 ":art-gtest-jars-MultiDex",
281 ":art-gtest-jars-Nested",
282 ],
Orion Hodson00cb81d2020-04-03 06:47:07 +0100283 header_libs: ["jni_headers"],
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000284 shared_libs: [
285 "libbacktrace",
286 "libziparchive",
287 ],
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000288}
289
Roland Levillainf0409142021-03-22 15:45:03 +0000290// Version of ART gtest `art_libdexfile_tests` bundled with the ART APEX on target.
291// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
292art_cc_test {
293 name: "art_libdexfile_tests",
294 defaults: [
295 "art_gtest_defaults",
296 "art_libdexfile_tests_defaults",
297 ],
298}
299
300// Standalone version of ART gtest `art_libdexfile_tests`, not bundled with the ART APEX on target.
301art_cc_test {
302 name: "art_standalone_libdexfile_tests",
303 defaults: [
304 "art_standalone_gtest_defaults",
305 "art_libdexfile_tests_defaults",
306 ],
307 test_config: "art_standalone_libdexfile_tests.xml",
308}
309
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000310cc_library_headers {
311 name: "libdexfile_external_headers",
Martin Stjernholmb4abe0a2019-05-17 19:22:55 +0100312 visibility: ["//visibility:public"],
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000313 host_supported: true,
314 header_libs: ["libbase_headers"],
315 export_header_lib_headers: ["libbase_headers"],
316 export_include_dirs: ["external/include"],
317
318 target: {
319 windows: {
320 enabled: true,
321 },
322 },
Jiyong Park71f661c2020-04-28 18:20:43 +0900323
324 apex_available: [
325 "//apex_available:platform",
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100326 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +0900327 "com.android.art.debug",
Martin Stjernholm694f0122020-10-30 02:23:24 +0000328 "com.android.media",
329 "com.android.runtime",
Jiyong Park71f661c2020-04-28 18:20:43 +0900330 ],
Nicolas Geoffrayec388c02021-03-03 22:09:06 +0000331 min_sdk_version: "S",
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000332}
333
Paul Duffin4345aac2019-07-17 15:51:54 +0100334// Make dex_instruction_list.h available for tools/jvmti-agents/titrace
335cc_library_headers {
336 name: "libdexfile_all_headers",
337 visibility: ["//art:__subpackages__"],
338 host_supported: true,
339 export_include_dirs: ["."],
Jiyong Park71f661c2020-04-28 18:20:43 +0900340
341 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100342 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +0900343 "com.android.art.debug",
Jiyong Park71f661c2020-04-28 18:20:43 +0900344 ],
Nicolas Geoffrayec388c02021-03-03 22:09:06 +0000345 min_sdk_version: "S",
Paul Duffin4345aac2019-07-17 15:51:54 +0100346}
347
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000348art_cc_test {
349 name: "art_libdexfile_external_tests",
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +0100350 defaults: [
351 "art_module_source_build_defaults",
352 "art_test_defaults",
353 ],
Martin Stjernholm842555d2020-03-23 14:38:47 +0000354 test_suites: ["general-tests"],
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000355 srcs: [
356 "external/dex_file_ext_c_test.c",
David Srbecky30d4d2f2021-03-24 16:11:49 +0000357 "external/dex_file_ext_test.cc",
358 ],
359 shared_libs: [
360 "libartbase",
361 "libdexfile",
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000362 ],
Orion Hodson00cb81d2020-04-03 06:47:07 +0100363 header_libs: [
364 "jni_headers",
365 "libdexfile_external_headers",
366 ],
Martin Stjernholmfdb2f602019-01-09 14:47:00 +0000367}
368
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000369// Support library with a C++ API for accessing the libdexfile API for external
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000370// (non-ART) users.
371//
Martin Stjernholm34b00fb2021-05-14 18:15:56 +0100372// This library dlopens libdexfile(d).so on first use, so there is no build time
373// dependency on dex file logic. It is therefore safe to use from binaries
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000374// compiled without dex file support, given they won't encounter any dex file
375// stack frames.
Martin Stjernholm34b00fb2021-05-14 18:15:56 +0100376art_cc_library_static {
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000377 name: "libdexfile_support",
Martin Stjernholmb4abe0a2019-05-17 19:22:55 +0100378 visibility: ["//visibility:public"],
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000379 host_supported: true,
380 srcs: [
381 "external/dex_file_supp.cc",
382 ],
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000383 runtime_libs: ["libdexfile"],
David Srbecky2ddb98b2021-03-09 00:37:04 +0000384 shared_libs: [
385 "liblog",
386 "libbase",
387 ],
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000388 header_libs: ["libdexfile_external_headers"],
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000389 export_header_lib_headers: ["libdexfile_external_headers"],
Jiyong Park71f661c2020-04-28 18:20:43 +0900390
391 apex_available: [
392 "//apex_available:platform",
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100393 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +0900394 "com.android.art.debug",
Martin Stjernholm694f0122020-10-30 02:23:24 +0000395 "com.android.media",
396 "com.android.media.swcodec",
397 "com.android.runtime",
Jiyong Park71f661c2020-04-28 18:20:43 +0900398 ],
Nicolas Geoffrayec388c02021-03-03 22:09:06 +0000399 min_sdk_version: "S",
Martin Stjernholmb3d2e832018-11-15 18:09:35 +0000400}
Martin Stjernholm750bf042019-01-09 22:51:12 +0000401
Roland Levillainf0409142021-03-22 15:45:03 +0000402art_cc_defaults {
403 name: "art_libdexfile_support_tests_defaults",
Roland Levillain61f07162019-06-26 12:44:04 +0100404 defaults: [
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +0100405 "art_module_source_build_defaults",
Roland Levillain61f07162019-06-26 12:44:04 +0100406 ],
Martin Stjernholm842555d2020-03-23 14:38:47 +0000407 test_suites: ["general-tests"],
Martin Stjernholm750bf042019-01-09 22:51:12 +0000408 srcs: [
409 "external/dex_file_supp_test.cc",
410 ],
411 shared_libs: [
412 "libartbase",
413 "libbase",
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000414 "libdexfile",
Martin Stjernholm34b00fb2021-05-14 18:15:56 +0100415 "liblog",
416 ],
417 static_libs: [
Martin Stjernholm750bf042019-01-09 22:51:12 +0000418 "libdexfile_support",
419 ],
420}
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000421
Roland Levillainf0409142021-03-22 15:45:03 +0000422// Version of ART gtest `art_libdexfile_support_tests` bundled with the ART APEX on target.
423// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
424art_cc_test {
425 name: "art_libdexfile_support_tests",
426 host_supported: true,
427 defaults: [
428 "art_test_defaults",
429 "art_libdexfile_support_tests_defaults",
430 ],
431}
432
433// Standalone version of ART gtest `art_libdexfile_support_tests`, not bundled with the ART APEX on
434// target.
435art_cc_test {
436 name: "art_standalone_libdexfile_support_tests",
437 defaults: [
438 "art_standalone_test_defaults",
439 "art_libdexfile_support_tests_defaults",
440 ],
441
442 // Support multilib variants (using different suffix per sub-architecture), which is needed on
443 // build targets with secondary architectures, as the MTS test suite packaging logic flattens
444 // all test artifacts into a single `testcases` directory.
445 compile_multilib: "both",
446 multilib: {
447 lib32: {
448 suffix: "32",
449 },
450 lib64: {
451 suffix: "64",
452 },
453 },
Roland Levillain6a2e6892021-07-04 14:21:07 +0100454
455 test_suites: [
456 "mts-art",
457 ],
Roland Levillainf0409142021-03-22 15:45:03 +0000458}
459
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100460cc_library_static {
461 name: "libdexfile_support_static",
Martin Stjernholmd3ee98a2019-09-23 16:26:50 +0100462 host_supported: true,
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000463 srcs: [
464 "external/dex_file_supp.cc",
465 ],
466 cflags: ["-DSTATIC_LIB"],
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000467 header_libs: ["libdexfile_external_headers"],
468 export_header_lib_headers: ["libdexfile_external_headers"],
469}
470
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100471cc_defaults {
472 name: "libdexfile_support_static_defaults",
Martin Stjernholm621afb42019-09-23 22:01:36 +0100473 defaults: [
474 "libdexfile_static_defaults",
Martin Stjernholm621afb42019-09-23 22:01:36 +0100475 ],
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100476 whole_static_libs: [
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000477 "libdexfile",
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100478 "libdexfile_support_static",
Martin Stjernholm621afb42019-09-23 22:01:36 +0100479 ],
480}
481
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100482cc_defaults {
483 name: "libdexfiled_support_static_defaults",
Martin Stjernholm621afb42019-09-23 22:01:36 +0100484 defaults: [
Martin Stjernholm621afb42019-09-23 22:01:36 +0100485 "libdexfiled_static_defaults",
486 ],
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100487 whole_static_libs: [
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000488 "libdexfiled",
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100489 "libdexfile_support_static",
Martin Stjernholm621afb42019-09-23 22:01:36 +0100490 ],
491}
492
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000493art_cc_test {
494 name: "art_libdexfile_support_static_tests",
Martin Stjernholm842555d2020-03-23 14:38:47 +0000495 test_suites: ["general-tests"],
Martin Stjernholm0da7dfc2021-05-12 00:38:05 +0100496 defaults: [
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +0100497 "art_module_source_build_defaults",
Martin Stjernholm0da7dfc2021-05-12 00:38:05 +0100498 "art_test_defaults",
499 "libdexfile_support_static_defaults",
500 ],
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000501 srcs: [
502 "external/dex_file_supp_test.cc",
503 ],
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100504}
505
Martin Stjernholmcbbc8df2020-09-30 22:02:32 +0100506// For use by external packages allowed to link in static libdexfile_support.
507// This is not allowed in any module that may end up in an APEX or platform
508// image, so visibility is restrictive.
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100509cc_library_static {
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000510 name: "libdexfile_static",
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100511 host_supported: true,
Martin Stjernholmcbbc8df2020-09-30 22:02:32 +0100512 visibility: [
513 // Required for simpleperf, libsimpleperf_record, and libsimpleperf_report
514 // in the NDK.
515 "//system/extras/simpleperf",
516 "//cts/tests/tests/simpleperf",
Martin Stjernholmfe94b1c2019-01-31 17:40:39 +0000517 ],
Martin Stjernholmcbbc8df2020-09-30 22:02:32 +0100518 // Using libdexfile_support_static_defaults will link in external libs like
519 // libbase and libz statically as well, which are likely to cause duplicate
520 // copies in the depending module.
521 // TODO(b/169885605): Avoid exposing symbols from those libs.
522 defaults: [
523 "art_defaults",
524 "libdexfile_support_static_defaults",
525 ],
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100526}
527
528art_cc_test {
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000529 name: "art_libdexfile_static_tests",
Martin Stjernholm0da7dfc2021-05-12 00:38:05 +0100530 defaults: ["art_test_defaults"],
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100531 test_suites: ["general-tests"],
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100532 srcs: [
533 "external/dex_file_supp_test.cc",
534 ],
Martin Stjernholmcbbc8df2020-09-30 22:02:32 +0100535 static_libs: [
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000536 "libdexfile_static",
Martin Stjernholmcbbc8df2020-09-30 22:02:32 +0100537 ],
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100538 enabled: false,
539 target: {
540 linux: {
541 enabled: true,
542 },
543 },
Martin Stjernholm49e80cc2021-03-03 00:13:09 +0000544 // TODO(b/181740144): Enable a ubsan check to create a dependency on
545 // ubsan_minimal. It's needed to be able to link with the prebuilt
Martin Stjernholmd3e9ff32021-03-16 00:44:25 +0000546 // libdexfile_static.a, which contains libziparchive.a, which is
Martin Stjernholm49e80cc2021-03-03 00:13:09 +0000547 // built with some ubsan checks
548 // (https://cs.android.com/android/platform/superproject/+/master:system/libziparchive/Android.bp;l=47-59;drc=c7b498fdf2002194709e40ea58ce39f43684fc14)
549 // that the SDK snapshots currently don't propagate properly for static
550 // libs.
551 sanitize: {
552 misc_undefined: ["shift"],
553 },
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100554}
Colin Cross7b550652020-11-17 10:12:52 -0800555
556filegroup {
557 name: "art_libdexfile_dex_instruction_list_header",
558 srcs: ["dex/dex_instruction_list.h"],
559}