blob: 4d4294b9bf2efe88f81abfd0f575ec9eca607e6a [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 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -070071
Steven Moreland1f642412017-06-26 13:52:06 -070072 shared_libs: [
Steven Morelande6132be2019-03-25 20:38:56 -070073 "libcutils",
Steven Moreland1f642412017-06-26 13:52:06 -070074 "liblog",
75 ],
Steven Moreland9c832022020-07-07 22:37:07 +000076 sanitize: {
77 misc_undefined: ["integer"],
78 },
Steven Moreland1f642412017-06-26 13:52:06 -070079
Dan Willemsen2e1591b2016-07-12 17:20:18 -070080 target: {
81 android: {
Dan Willemsen2e1591b2016-07-12 17:20:18 -070082 cflags: ["-fvisibility=protected"],
83
84 shared_libs: [
Jiyong Park0b3c24b2017-05-26 17:57:18 +090085 "libvndksupport",
Dan Willemsen2e1591b2016-07-12 17:20:18 -070086 ],
Dan Willemsene16bdb12016-07-13 00:20:20 -070087
88 sanitize: {
89 misc_undefined: ["integer"],
90 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -070091 },
92
Jiyong Park011ee122018-05-29 16:41:30 +090093 recovery: {
94 exclude_shared_libs: ["libvndksupport"],
95 },
96
Dan Willemsenab34b472016-11-29 13:32:55 -080097 linux_bionic: {
98 enabled: true,
Dan Willemsenab34b472016-11-29 13:32:55 -080099 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700100
101 darwin: {
102 cflags: ["-Wno-unused-parameter"],
103 },
104
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700105 windows: {
Dan Willemsen528f1442017-11-29 18:06:11 -0800106 cflags: [
107 // Under MinGW, ctype.h doesn't need multi-byte support
108 "-DMB_CUR_MAX=1",
109 "-Wno-unused-private-field",
110 ],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700111
112 enabled: true,
113 },
114 },
Anis Assie75dd9a2022-03-08 19:48:19 +0000115 fuzz_config: {
116 cc: ["smoreland@google.com"],
117 },
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700118}
119
Steven Moreland377adea2022-10-08 05:06:52 +0000120cc_defaults {
121 name: "libutils_impl_defaults",
Zhi Douff9e6402022-12-09 22:30:57 +0000122 defaults: [
123 "libutils_defaults",
124 "apex-lowest-min-sdk-version",
125 ],
dimitry454ba7e2019-05-16 13:48:17 +0200126 native_bridge_supported: true,
David Sehrabfb9f32018-01-17 17:07:09 -0800127
Steven Moreland7a1ca592023-10-07 01:09:39 +0000128 whole_static_libs: ["libutils_binder"],
129
Steven Morelandc7383702023-10-21 00:43:52 +0000130 header_libs: [
131 "libbase_headers",
132 "libutils_headers",
133 ],
134 export_header_lib_headers: [
135 "libutils_headers",
136 ],
137
David Sehrabfb9f32018-01-17 17:07:09 -0800138 srcs: [
139 "FileMap.cpp",
140 "JenkinsHash.cpp",
Steven Morelandc2dc7cd2021-05-04 21:27:56 +0000141 "LightRefBase.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800142 "NativeHandle.cpp",
143 "Printer.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800144 "StopWatch.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800145 "SystemClock.cpp",
146 "Threads.cpp",
147 "Timers.cpp",
148 "Tokenizer.cpp",
David Sehrabfb9f32018-01-17 17:07:09 -0800149 "misc.cpp",
150 ],
151
152 target: {
153 android: {
154 srcs: [
155 "Trace.cpp",
156 ],
157 },
158 linux: {
Josh Gaof0ea1e62019-01-02 14:31:26 -0800159 header_libs: ["libbase_headers"],
David Sehrabfb9f32018-01-17 17:07:09 -0800160 srcs: [
161 "Looper.cpp",
162 ],
163 },
164 },
Jeffrey Huang18986cb2020-02-12 17:06:05 -0800165
166 apex_available: [
167 "//apex_available:anyapex",
168 "//apex_available:platform",
169 ],
Yi Kong6ee028f2021-12-23 15:57:40 +0800170
171 afdo: true,
David Sehrabfb9f32018-01-17 17:07:09 -0800172}
173
174cc_library {
Steven Moreland377adea2022-10-08 05:06:52 +0000175 name: "libutils",
176 defaults: ["libutils_impl_defaults"],
177
178 vndk: {
179 enabled: true,
180 support_system_process: true,
181 },
Hsin-Yi Chen3de02bd2022-12-06 17:19:42 +0800182
Hsin-Yi Chene474f212023-09-04 11:16:34 +0800183 target: {
184 product: {
185 header_abi_checker: {
186 // AFDO affects weak symbols.
187 diff_flags: ["-allow-adding-removing-weak-symbols"],
188 ref_dump_dirs: ["abi-dumps"],
189 },
190 },
191 vendor: {
192 header_abi_checker: {
193 // AFDO affects weak symbols.
194 diff_flags: ["-allow-adding-removing-weak-symbols"],
195 ref_dump_dirs: ["abi-dumps"],
196 },
197 },
Hsin-Yi Chen3de02bd2022-12-06 17:19:42 +0800198 },
Steven Moreland377adea2022-10-08 05:06:52 +0000199}
200
201cc_library {
202 name: "libutils_test_compile",
203 defaults: ["libutils_impl_defaults"],
204
205 cflags: [
Steven Moreland377adea2022-10-08 05:06:52 +0000206 "-DDEBUG_POLL_AND_WAKE=1",
207 "-DDEBUG_REFS=1",
208 "-DDEBUG_TOKENIZER=1",
209 ],
210
211 visibility: [":__subpackages__"],
212}
213
214cc_library {
David Sehrabfb9f32018-01-17 17:07:09 -0800215 name: "libutilscallstack",
216 defaults: ["libutils_defaults"],
Victor Khimenko7428c522020-06-18 22:01:13 +0200217 // TODO(b/153609531): remove when no longer needed.
218 native_bridge_supported: true,
Steven Moreland6c509ca2022-04-11 22:30:07 +0000219 min_sdk_version: "29",
Steven Moreland377adea2022-10-08 05:06:52 +0000220 vndk: {
221 enabled: true,
222 support_system_process: true,
223 },
David Sehrabfb9f32018-01-17 17:07:09 -0800224
Steven Morelandc7383702023-10-21 00:43:52 +0000225 header_libs: [
226 "libbase_headers",
227 "libutils_headers",
228 ],
229 export_header_lib_headers: [
230 "libutils_headers",
231 ],
232
David Sehrabfb9f32018-01-17 17:07:09 -0800233 srcs: [
234 "CallStack.cpp",
235 ],
236
Steven Morelande6132be2019-03-25 20:38:56 -0700237 shared_libs: [
Dylan Katz9d5845b2020-05-11 15:44:01 -0700238 "libutils",
Christopher Ferrisab631242022-05-10 16:13:02 -0700239 "libunwindstack",
Steven Morelande6132be2019-03-25 20:38:56 -0700240 ],
241
David Sehrabfb9f32018-01-17 17:07:09 -0800242 target: {
David Sehrabfb9f32018-01-17 17:07:09 -0800243 linux: {
244 srcs: [
245 "ProcessCallStack.cpp",
246 ],
247 },
Steven Morelandd33a2ee2019-04-01 15:01:53 -0700248 darwin: {
249 enabled: false,
250 },
Steven Morelande6132be2019-03-25 20:38:56 -0700251 windows: {
252 enabled: false,
253 },
David Sehrabfb9f32018-01-17 17:07:09 -0800254 },
255}
256
Dylan Katz9d5845b2020-05-11 15:44:01 -0700257cc_defaults {
258 name: "libutils_fuzz_defaults",
259 host_supported: true,
260 shared_libs: [
261 "libutils",
262 "libbase",
Dylan Katz7168f272020-07-02 11:51:44 -0700263 "liblog",
Dylan Katz9d5845b2020-05-11 15:44:01 -0700264 ],
265}
266
267cc_fuzz {
268 name: "libutils_fuzz_bitset",
269 defaults: ["libutils_fuzz_defaults"],
270 srcs: ["BitSet_fuzz.cpp"],
271}
272
273cc_fuzz {
274 name: "libutils_fuzz_filemap",
275 defaults: ["libutils_fuzz_defaults"],
276 srcs: ["FileMap_fuzz.cpp"],
277}
278
279cc_fuzz {
Dylan Katz7168f272020-07-02 11:51:44 -0700280 name: "libutils_fuzz_printer",
281 defaults: ["libutils_fuzz_defaults"],
282 srcs: ["Printer_fuzz.cpp"],
283}
284
285cc_fuzz {
286 name: "libutils_fuzz_callstack",
287 defaults: ["libutils_fuzz_defaults"],
288 srcs: ["CallStack_fuzz.cpp"],
289 shared_libs: [
290 "libutilscallstack",
291 ],
292}
293
294cc_fuzz {
295 name: "libutils_fuzz_process_callstack",
296 defaults: ["libutils_fuzz_defaults"],
297 srcs: ["ProcessCallStack_fuzz.cpp"],
298 shared_libs: [
299 "libutilscallstack",
300 ],
301}
302
303cc_fuzz {
Dylan Katz7168f272020-07-02 11:51:44 -0700304 name: "libutils_fuzz_lrucache",
305 defaults: ["libutils_fuzz_defaults"],
306 srcs: ["LruCache_fuzz.cpp"],
307}
308
309cc_fuzz {
310 name: "libutils_fuzz_looper",
311 defaults: ["libutils_fuzz_defaults"],
312 srcs: ["Looper_fuzz.cpp"],
313}
314
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700315cc_test {
Elliott Hughes01705e42019-02-07 12:41:37 -0800316 name: "libutils_test",
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700317 host_supported: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800318
319 srcs: [
320 "BitSet_test.cpp",
Christopher Ferris15fee822022-09-12 18:00:10 -0700321 "CallStack_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800322 "FileMap_test.cpp",
323 "LruCache_test.cpp",
324 "Mutex_test.cpp",
Yo Chiang5b028ba2020-07-10 19:34:53 +0800325 "Singleton_test.cpp",
Elliott Hughes842e1cc2020-05-27 12:24:30 -0700326 "Timers_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800327 ],
328
329 target: {
330 android: {
331 srcs: [
332 "SystemClock_test.cpp",
333 ],
334 shared_libs: [
Elliott Hughes01705e42019-02-07 12:41:37 -0800335 "libbase",
Christopher Ferris15fee822022-09-12 18:00:10 -0700336 "libcutils",
337 "liblog",
338 "liblzma",
339 "libunwindstack",
340 "libutils",
341 "libutilscallstack",
342 "libz",
Elliott Hughes01705e42019-02-07 12:41:37 -0800343 ],
344 },
345 linux: {
346 srcs: [
347 "Looper_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800348 ],
349 },
350 host: {
351 static_libs: [
Elliott Hughes01705e42019-02-07 12:41:37 -0800352 "libbase",
Christopher Ferris15fee822022-09-12 18:00:10 -0700353 "liblog",
354 "liblzma",
355 "libunwindstack_no_dex",
356 "libutils",
357 "libutilscallstack",
Elliott Hughes01705e42019-02-07 12:41:37 -0800358 ],
359 },
360 },
361
Yo Chiang5b028ba2020-07-10 19:34:53 +0800362 data_libs: [
363 "libutils_test_singleton1",
364 "libutils_test_singleton2",
365 ],
366
Elliott Hughes01705e42019-02-07 12:41:37 -0800367 cflags: [
368 "-Wall",
369 "-Wextra",
370 "-Werror",
371 "-Wthread-safety",
372 ],
Elliott Hughescb65c352019-02-20 15:23:34 -0800373
374 test_suites: ["device-tests"],
375}
376
Elliott Hughes01705e42019-02-07 12:41:37 -0800377cc_test_library {
378 name: "libutils_test_singleton1",
379 host_supported: true,
Yo Chiang5b028ba2020-07-10 19:34:53 +0800380 installable: false,
Elliott Hughes01705e42019-02-07 12:41:37 -0800381 srcs: ["Singleton_test1.cpp"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800382 cflags: [
383 "-Wall",
384 "-Werror",
385 ],
Jiyong Park705abe22021-12-14 22:55:34 +0900386 header_libs: ["libutils_headers"],
Dan Willemsen2e1591b2016-07-12 17:20:18 -0700387}
Elliott Hughes01705e42019-02-07 12:41:37 -0800388
389cc_test_library {
390 name: "libutils_test_singleton2",
391 host_supported: true,
Yo Chiang5b028ba2020-07-10 19:34:53 +0800392 installable: false,
Elliott Hughes01705e42019-02-07 12:41:37 -0800393 srcs: ["Singleton_test2.cpp"],
394 cflags: [
395 "-Wall",
396 "-Werror",
397 ],
398 shared_libs: ["libutils_test_singleton1"],
Jiyong Park705abe22021-12-14 22:55:34 +0900399 header_libs: ["libutils_headers"],
Elliott Hughes01705e42019-02-07 12:41:37 -0800400}