blob: 0f63df43d0163cccbdef2c035ef7d2127e639bed [file] [log] [blame]
Bob Badourd69ad692021-02-16 19:02:14 -08001package {
2 default_applicable_licenses: ["system_core_libutils_license"],
3}
4
Bob Badourd69ad692021-02-16 19:02:14 -08005license {
6 name: "system_core_libutils_license",
7 visibility: [":__subpackages__"],
8 license_kinds: [
9 "SPDX-license-identifier-Apache-2.0",
10 ],
11 license_text: [
12 "NOTICE",
13 ],
14}
15
Vijay Venkatraman75acc7b2017-01-05 10:39:38 -080016cc_library_headers {
17 name: "libutils_headers",
Steven Moreland91527ed2017-04-11 12:43:16 -070018 vendor_available: true,
Justin Yunfeef4d32020-11-11 19:17:40 +090019 product_available: true,
Jiyong Park612210c2018-04-27 21:48:43 +090020 recovery_available: true,
Yifan Hong55015ff2020-10-27 16:37:06 -070021 vendor_ramdisk_available: true,
Vijay Venkatraman75acc7b2017-01-05 10:39:38 -080022 host_supported: true,
dimitry454ba7e2019-05-16 13:48:17 +020023 native_bridge_supported: true,
Zhi Douff9e6402022-12-09 22:30:57 +000024 defaults: [
25 "apex-lowest-min-sdk-version",
26 ],
Jiyong Park8bf9b162020-03-07 16:36:09 +090027 apex_available: [
28 "//apex_available:platform",
29 "//apex_available:anyapex",
30 ],
Steven Morelandd3b4b2c2017-04-13 21:01:40 -070031
Jaesoo Lee1e8ac0f2017-04-20 16:56:45 +090032 header_libs: [
Jiyong Park705abe22021-12-14 22:55:34 +090033 "libbase_headers",
Elliott Hughesdc699a22018-02-16 17:58:14 -080034 "libcutils_headers",
Jiyong Park8b196a72022-01-12 09:23:29 +090035 "liblog_headers",
Suren Baghdasaryan94910782019-01-25 05:32:52 +000036 "libprocessgroup_headers",
Jiyong Park8b196a72022-01-12 09:23:29 +090037 "libsystem_headers",
Jaesoo Lee1e8ac0f2017-04-20 16:56:45 +090038 ],
39 export_header_lib_headers: [
Jiyong Park705abe22021-12-14 22:55:34 +090040 "libbase_headers",
Elliott Hughesdc699a22018-02-16 17:58:14 -080041 "libcutils_headers",
Jiyong Park8b196a72022-01-12 09:23:29 +090042 "liblog_headers",
Suren Baghdasaryan94910782019-01-25 05:32:52 +000043 "libprocessgroup_headers",
Jiyong Park8b196a72022-01-12 09:23:29 +090044 "libsystem_headers",
Jaesoo Lee1e8ac0f2017-04-20 16:56:45 +090045 ],
Vijay Venkatraman75acc7b2017-01-05 10:39:38 -080046 export_include_dirs: ["include"],
Steven Morelandd3b4b2c2017-04-13 21:01:40 -070047
Vijay Venkatraman75acc7b2017-01-05 10:39:38 -080048 target: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -070049 linux_bionic: {
50 enabled: true,
51 },
Vijay Venkatraman75acc7b2017-01-05 10:39:38 -080052 windows: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -070053 enabled: true,
54 },
Vijay Venkatraman75acc7b2017-01-05 10:39:38 -080055 },
56}
57
David Sehrabfb9f32018-01-17 17:07:09 -080058cc_defaults {
59 name: "libutils_defaults",
Steven Moreland91527ed2017-04-11 12:43:16 -070060 vendor_available: true,
Justin Yunfeef4d32020-11-11 19:17:40 +090061 product_available: true,
Jiyong Park011ee122018-05-29 16:41:30 +090062 recovery_available: true,
Dan Willemsen2e1591b2016-07-12 17:20:18 -070063 host_supported: true,
64
Elliott Hughesdc699a22018-02-16 17:58:14 -080065 cflags: [
66 "-Wall",
67 "-Werror",
Elliott Hughes48a9eb42021-03-04 09:46:23 -080068 "-Wno-exit-time-destructors",
Steven Morelanda06e68c2021-04-27 00:09:23 +000069 "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
Elliott Hughesdc699a22018-02-16 17:58:14 -080070 ],
Steven Morelandb084bc32017-04-12 18:57:57 -070071 header_libs: [
Chih-Hung Hsieh502f4862018-09-13 11:08:41 -070072 "libbase_headers",
Steven Morelandb084bc32017-04-12 18:57:57 -070073 "libutils_headers",
74 ],
75 export_header_lib_headers: [
Steven Morelandb084bc32017-04-12 18:57:57 -070076 "libutils_headers",
77 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070078
Steven Moreland1f642412017-06-26 13:52:06 -070079 shared_libs: [
Steven Morelande6132be2019-03-25 20:38:56 -070080 "libcutils",
Steven Moreland1f642412017-06-26 13:52:06 -070081 "liblog",
82 ],
Steven Moreland9c832022020-07-07 22:37:07 +000083 sanitize: {
84 misc_undefined: ["integer"],
85 },
Steven Moreland1f642412017-06-26 13:52:06 -070086
Dan Willemsen2e1591b2016-07-12 17:20:18 -070087 target: {
88 android: {
Dan Willemsen2e1591b2016-07-12 17:20:18 -070089 cflags: ["-fvisibility=protected"],
90
91 shared_libs: [
Jiyong Park0b3c24b2017-05-26 17:57:18 +090092 "libvndksupport",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070093 ],
Dan Willemsene16bdb12016-07-13 00:20:20 -070094
95 sanitize: {
96 misc_undefined: ["integer"],
97 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070098 },
99
Jiyong Park011ee122018-05-29 16:41:30 +0900100 recovery: {
101 exclude_shared_libs: ["libvndksupport"],
102 },
103
Dan Willemsenab34b472016-11-29 13:32:55 -0800104 linux_bionic: {
105 enabled: true,
Dan Willemsenab34b472016-11-29 13:32:55 -0800106 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700107
108 darwin: {
109 cflags: ["-Wno-unused-parameter"],
110 },
111
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700112 windows: {
Dan Willemsen528f1442017-11-29 18:06:11 -0800113 cflags: [
114 // Under MinGW, ctype.h doesn't need multi-byte support
115 "-DMB_CUR_MAX=1",
116 "-Wno-unused-private-field",
117 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700118
119 enabled: true,
120 },
121 },
Anis Assie75dd9a2022-03-08 19:48:19 +0000122 fuzz_config: {
123 cc: ["smoreland@google.com"],
124 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700125}
126
Steven Moreland377adea2022-10-08 05:06:52 +0000127cc_defaults {
128 name: "libutils_impl_defaults",
Zhi Douff9e6402022-12-09 22:30:57 +0000129 defaults: [
130 "libutils_defaults",
131 "apex-lowest-min-sdk-version",
132 ],
dimitry454ba7e2019-05-16 13:48:17 +0200133 native_bridge_supported: true,
David Sehrabfb9f32018-01-17 17:07:09 -0800134
135 srcs: [
Steven Moreland591cab82019-11-15 00:07:32 -0800136 "Errors.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800137 "FileMap.cpp",
138 "JenkinsHash.cpp",
Steven Morelandc2dc7cd2021-05-04 21:27:56 +0000139 "LightRefBase.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800140 "NativeHandle.cpp",
141 "Printer.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800142 "RefBase.cpp",
143 "SharedBuffer.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800144 "StopWatch.cpp",
145 "String8.cpp",
146 "String16.cpp",
147 "StrongPointer.cpp",
148 "SystemClock.cpp",
149 "Threads.cpp",
150 "Timers.cpp",
151 "Tokenizer.cpp",
152 "Unicode.cpp",
153 "VectorImpl.cpp",
154 "misc.cpp",
155 ],
156
157 target: {
158 android: {
159 srcs: [
160 "Trace.cpp",
161 ],
162 },
163 linux: {
Josh Gaof0ea1e62019-01-02 14:31:26 -0800164 header_libs: ["libbase_headers"],
David Sehrabfb9f32018-01-17 17:07:09 -0800165 srcs: [
166 "Looper.cpp",
167 ],
168 },
169 },
Jeffrey Huang18986cb2020-02-12 17:06:05 -0800170
171 apex_available: [
172 "//apex_available:anyapex",
173 "//apex_available:platform",
174 ],
Yi Kong6ee028f2021-12-23 15:57:40 +0800175
176 afdo: true,
David Sehrabfb9f32018-01-17 17:07:09 -0800177}
178
179cc_library {
Steven Moreland377adea2022-10-08 05:06:52 +0000180 name: "libutils",
181 defaults: ["libutils_impl_defaults"],
182
183 vndk: {
184 enabled: true,
185 support_system_process: true,
186 },
Hsin-Yi Chen3de02bd2022-12-06 17:19:42 +0800187
Hsin-Yi Chene474f212023-09-04 11:16:34 +0800188 target: {
189 product: {
190 header_abi_checker: {
191 // AFDO affects weak symbols.
192 diff_flags: ["-allow-adding-removing-weak-symbols"],
193 ref_dump_dirs: ["abi-dumps"],
194 },
195 },
196 vendor: {
197 header_abi_checker: {
198 // AFDO affects weak symbols.
199 diff_flags: ["-allow-adding-removing-weak-symbols"],
200 ref_dump_dirs: ["abi-dumps"],
201 },
202 },
Hsin-Yi Chen3de02bd2022-12-06 17:19:42 +0800203 },
Steven Moreland377adea2022-10-08 05:06:52 +0000204}
205
206cc_library {
207 name: "libutils_test_compile",
208 defaults: ["libutils_impl_defaults"],
209
210 cflags: [
Steven Moreland377adea2022-10-08 05:06:52 +0000211 "-DDEBUG_POLL_AND_WAKE=1",
212 "-DDEBUG_REFS=1",
213 "-DDEBUG_TOKENIZER=1",
214 ],
215
216 visibility: [":__subpackages__"],
217}
218
219cc_library {
David Sehrabfb9f32018-01-17 17:07:09 -0800220 name: "libutilscallstack",
221 defaults: ["libutils_defaults"],
Victor Khimenko7428c522020-06-18 22:01:13 +0200222 // TODO(b/153609531): remove when no longer needed.
223 native_bridge_supported: true,
Steven Moreland6c509ca2022-04-11 22:30:07 +0000224 min_sdk_version: "29",
Steven Moreland377adea2022-10-08 05:06:52 +0000225 vndk: {
226 enabled: true,
227 support_system_process: true,
228 },
David Sehrabfb9f32018-01-17 17:07:09 -0800229
230 srcs: [
231 "CallStack.cpp",
232 ],
233
Steven Morelande6132be2019-03-25 20:38:56 -0700234 shared_libs: [
Dylan Katz9d5845b2020-05-11 15:44:01 -0700235 "libutils",
Christopher Ferrisab631242022-05-10 16:13:02 -0700236 "libunwindstack",
Steven Morelande6132be2019-03-25 20:38:56 -0700237 ],
238
David Sehrabfb9f32018-01-17 17:07:09 -0800239 target: {
David Sehrabfb9f32018-01-17 17:07:09 -0800240 linux: {
241 srcs: [
242 "ProcessCallStack.cpp",
243 ],
244 },
Steven Morelandd33a2ee2019-04-01 15:01:53 -0700245 darwin: {
246 enabled: false,
247 },
Steven Morelande6132be2019-03-25 20:38:56 -0700248 windows: {
249 enabled: false,
250 },
David Sehrabfb9f32018-01-17 17:07:09 -0800251 },
252}
253
Dylan Katz9d5845b2020-05-11 15:44:01 -0700254cc_defaults {
255 name: "libutils_fuzz_defaults",
256 host_supported: true,
257 shared_libs: [
258 "libutils",
259 "libbase",
Dylan Katz7168f272020-07-02 11:51:44 -0700260 "liblog",
Dylan Katz9d5845b2020-05-11 15:44:01 -0700261 ],
262}
263
264cc_fuzz {
265 name: "libutils_fuzz_bitset",
266 defaults: ["libutils_fuzz_defaults"],
267 srcs: ["BitSet_fuzz.cpp"],
268}
269
270cc_fuzz {
271 name: "libutils_fuzz_filemap",
272 defaults: ["libutils_fuzz_defaults"],
273 srcs: ["FileMap_fuzz.cpp"],
274}
275
276cc_fuzz {
277 name: "libutils_fuzz_string8",
278 defaults: ["libutils_fuzz_defaults"],
279 srcs: ["String8_fuzz.cpp"],
280}
281
282cc_fuzz {
283 name: "libutils_fuzz_string16",
284 defaults: ["libutils_fuzz_defaults"],
285 srcs: ["String16_fuzz.cpp"],
286}
287
288cc_fuzz {
289 name: "libutils_fuzz_vector",
290 defaults: ["libutils_fuzz_defaults"],
291 srcs: ["Vector_fuzz.cpp"],
292}
293
Dylan Katz7168f272020-07-02 11:51:44 -0700294cc_fuzz {
295 name: "libutils_fuzz_printer",
296 defaults: ["libutils_fuzz_defaults"],
297 srcs: ["Printer_fuzz.cpp"],
298}
299
300cc_fuzz {
301 name: "libutils_fuzz_callstack",
302 defaults: ["libutils_fuzz_defaults"],
303 srcs: ["CallStack_fuzz.cpp"],
304 shared_libs: [
305 "libutilscallstack",
306 ],
307}
308
309cc_fuzz {
310 name: "libutils_fuzz_process_callstack",
311 defaults: ["libutils_fuzz_defaults"],
312 srcs: ["ProcessCallStack_fuzz.cpp"],
313 shared_libs: [
314 "libutilscallstack",
315 ],
316}
317
318cc_fuzz {
Dylan Katz7168f272020-07-02 11:51:44 -0700319 name: "libutils_fuzz_refbase",
320 defaults: ["libutils_fuzz_defaults"],
321 srcs: ["RefBase_fuzz.cpp"],
322}
323
324cc_fuzz {
325 name: "libutils_fuzz_lrucache",
326 defaults: ["libutils_fuzz_defaults"],
327 srcs: ["LruCache_fuzz.cpp"],
328}
329
330cc_fuzz {
331 name: "libutils_fuzz_looper",
332 defaults: ["libutils_fuzz_defaults"],
333 srcs: ["Looper_fuzz.cpp"],
334}
335
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700336cc_test {
Elliott Hughes01705e42019-02-07 12:41:37 -0800337 name: "libutils_test",
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700338 host_supported: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800339
340 srcs: [
341 "BitSet_test.cpp",
Christopher Ferris15fee822022-09-12 18:00:10 -0700342 "CallStack_test.cpp",
Jiyong Park705abe22021-12-14 22:55:34 +0900343 "Errors_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800344 "FileMap_test.cpp",
345 "LruCache_test.cpp",
346 "Mutex_test.cpp",
347 "SharedBuffer_test.cpp",
Yo Chiang5b028ba2020-07-10 19:34:53 +0800348 "Singleton_test.cpp",
Vic Yang9fb93ed2019-09-05 13:18:27 -0700349 "String16_test.cpp",
Jiyong Park705abe22021-12-14 22:55:34 +0900350 "String8_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800351 "StrongPointer_test.cpp",
Elliott Hughes842e1cc2020-05-27 12:24:30 -0700352 "Timers_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800353 "Unicode_test.cpp",
354 "Vector_test.cpp",
355 ],
356
357 target: {
358 android: {
359 srcs: [
360 "SystemClock_test.cpp",
361 ],
362 shared_libs: [
Elliott Hughes01705e42019-02-07 12:41:37 -0800363 "libbase",
Christopher Ferris15fee822022-09-12 18:00:10 -0700364 "libcutils",
365 "liblog",
366 "liblzma",
367 "libunwindstack",
368 "libutils",
369 "libutilscallstack",
370 "libz",
Elliott Hughes01705e42019-02-07 12:41:37 -0800371 ],
372 },
373 linux: {
374 srcs: [
375 "Looper_test.cpp",
376 "RefBase_test.cpp",
377 ],
378 },
379 host: {
380 static_libs: [
Elliott Hughes01705e42019-02-07 12:41:37 -0800381 "libbase",
Christopher Ferris15fee822022-09-12 18:00:10 -0700382 "liblog",
383 "liblzma",
384 "libunwindstack_no_dex",
385 "libutils",
386 "libutilscallstack",
Elliott Hughes01705e42019-02-07 12:41:37 -0800387 ],
388 },
389 },
390
Yo Chiang5b028ba2020-07-10 19:34:53 +0800391 data_libs: [
392 "libutils_test_singleton1",
393 "libutils_test_singleton2",
394 ],
395
Elliott Hughes01705e42019-02-07 12:41:37 -0800396 cflags: [
397 "-Wall",
398 "-Wextra",
399 "-Werror",
400 "-Wthread-safety",
401 ],
Elliott Hughescb65c352019-02-20 15:23:34 -0800402
403 test_suites: ["device-tests"],
404}
405
Elliott Hughes01705e42019-02-07 12:41:37 -0800406cc_test_library {
407 name: "libutils_test_singleton1",
408 host_supported: true,
Yo Chiang5b028ba2020-07-10 19:34:53 +0800409 installable: false,
Elliott Hughes01705e42019-02-07 12:41:37 -0800410 srcs: ["Singleton_test1.cpp"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800411 cflags: [
412 "-Wall",
413 "-Werror",
414 ],
Jiyong Park705abe22021-12-14 22:55:34 +0900415 header_libs: ["libutils_headers"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700416}
Elliott Hughes01705e42019-02-07 12:41:37 -0800417
418cc_test_library {
419 name: "libutils_test_singleton2",
420 host_supported: true,
Yo Chiang5b028ba2020-07-10 19:34:53 +0800421 installable: false,
Elliott Hughes01705e42019-02-07 12:41:37 -0800422 srcs: ["Singleton_test2.cpp"],
423 cflags: [
424 "-Wall",
425 "-Werror",
426 ],
427 shared_libs: ["libutils_test_singleton1"],
Jiyong Park705abe22021-12-14 22:55:34 +0900428 header_libs: ["libutils_headers"],
Elliott Hughes01705e42019-02-07 12:41:37 -0800429}
Steven Morelandc732c032019-09-03 18:04:50 -0700430
431cc_benchmark {
432 name: "libutils_benchmark",
433 srcs: ["Vector_benchmark.cpp"],
434 shared_libs: ["libutils"],
435}