blob: ecd130b988acdb3ff310eb450963a076a694fd2d [file] [log] [blame]
Dan Willemseneee8e7f2016-06-06 22:31:58 -07001//
2// Copyright (C) 2008 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
17// some files must not be compiled when building against Mingw
18// they correspond to features not used by our host development tools
19// which are also hard or even impossible to port to native Win32
20libcutils_nonwindows_sources = [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -080021 "fs.cpp",
Elliott Hughes9d127252018-07-13 10:54:49 -070022 "hashmap.cpp",
Jeff Sharkey53d37ba2017-11-09 17:41:09 -070023 "multiuser.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -080024 "str_parms.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -070025]
26
Vijay Venkatraman651f8382017-01-25 18:52:17 +000027cc_library_headers {
Vijay Venkatraman651f8382017-01-25 18:52:17 +000028 name: "libcutils_headers",
Steven Moreland385fe692017-04-13 14:29:58 -070029 vendor_available: true,
Jiyong Park612210c2018-04-27 21:48:43 +090030 recovery_available: true,
Vijay Venkatraman651f8382017-01-25 18:52:17 +000031 host_supported: true,
dimitry051d5cb2019-05-16 14:17:00 +020032 native_bridge_supported: true,
Vijay Venkatraman651f8382017-01-25 18:52:17 +000033 export_include_dirs: ["include"],
34 target: {
Steven Moreland385fe692017-04-13 14:29:58 -070035 vendor: {
Steven Morelande1c834d2018-01-05 14:42:12 -080036 override_export_include_dirs: ["include_vndk"],
Steven Moreland385fe692017-04-13 14:29:58 -070037 },
Dan Willemsene0cd1e02017-03-15 15:23:36 -070038 linux_bionic: {
39 enabled: true,
40 },
41 windows: {
42 enabled: true,
43 },
Vijay Venkatraman651f8382017-01-25 18:52:17 +000044 },
45}
46
Josh Gaoa9b62d52020-02-19 13:50:57 -080047// Socket specific parts of libcutils that are safe to statically link into an APEX.
48cc_library_static {
49 name: "libcutils_sockets",
50 vendor_available: true,
51 vndk: {
52 enabled: true,
53 support_system_process: true,
54 },
55 recovery_available: true,
56 host_supported: true,
57 native_bridge_supported: true,
58 apex_available: [
59 "//apex_available:platform",
60 "//apex_available:anyapex",
61 ],
62
63 export_include_dirs: ["include"],
64
65 srcs: ["sockets.cpp"],
66 target: {
67 linux_bionic: {
68 enabled: true,
69 },
70
71 not_windows: {
72 srcs: [
73 "socket_inaddr_any_server_unix.cpp",
74 "socket_local_client_unix.cpp",
75 "socket_local_server_unix.cpp",
76 "socket_network_client_unix.cpp",
77 "sockets_unix.cpp",
78 ],
79 },
80
81 // "not_windows" means "non-Windows host".
82 android: {
83 srcs: [
84 "android_get_control_file.cpp",
85 "socket_inaddr_any_server_unix.cpp",
86 "socket_local_client_unix.cpp",
87 "socket_local_server_unix.cpp",
88 "socket_network_client_unix.cpp",
89 "sockets_unix.cpp",
90 ],
91 static_libs: ["libbase"],
92 },
93
94 windows: {
95 host_ldlibs: ["-lws2_32"],
96 srcs: [
97 "socket_inaddr_any_server_windows.cpp",
98 "socket_network_client_windows.cpp",
99 "sockets_windows.cpp",
100 ],
101
102 enabled: true,
103 cflags: [
104 "-D_GNU_SOURCE",
105 ],
106 },
107 },
108}
109
110cc_test {
111 name: "libcutils_sockets_test",
112 test_suites: ["device-tests"],
113 static_libs: ["libbase", "libcutils_sockets"],
114 cflags: [
115 "-Wall",
116 "-Wextra",
117 "-Werror",
118 ],
119
120 srcs: ["sockets_test.cpp"],
121 target: {
122 android: {
123 srcs: [
124 "android_get_control_file_test.cpp",
125 "android_get_control_socket_test.cpp",
126 ],
127 },
128 },
129}
130
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700131cc_library {
132 name: "libcutils",
Steven Moreland385fe692017-04-13 14:29:58 -0700133 vendor_available: true,
Justin Yun9ca92452017-07-31 15:41:10 +0900134 vndk: {
135 enabled: true,
136 support_system_process: true,
137 },
Jiyong Park612210c2018-04-27 21:48:43 +0900138 recovery_available: true,
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700139 host_supported: true,
dimitry051d5cb2019-05-16 14:17:00 +0200140 native_bridge_supported: true,
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700141 srcs: [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800142 "config_utils.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800143 "canned_fs_config.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800144 "iosched_policy.cpp",
145 "load_file.cpp",
146 "native_handle.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800147 "record_stream.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700148 "strlcpy.c",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800149 "threads.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700150 ],
151
152 target: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700153 linux_bionic: {
154 enabled: true,
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700155 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700156 not_windows: {
157 srcs: libcutils_nonwindows_sources + [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800158 "ashmem-host.cpp",
Jiyong Parka2159c42019-02-03 00:34:29 +0900159 "fs_config.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800160 "trace-host.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700161 ],
162 },
163 windows: {
Steven Morelande6132be2019-03-25 20:38:56 -0700164 host_ldlibs: ["-lws2_32"],
165
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700166 srcs: [
David Sehreb2dd202018-12-20 12:59:36 -0800167 "trace-host.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700168 ],
169
170 enabled: true,
Mark Salyzyn163ecc62017-05-02 08:56:15 -0700171 cflags: [
172 "-D_GNU_SOURCE",
173 ],
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700174 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700175 android: {
176 srcs: libcutils_nonwindows_sources + [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800177 "android_reboot.cpp",
178 "ashmem-dev.cpp",
Jiyong Parka2159c42019-02-03 00:34:29 +0900179 "fs_config.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700180 "klog.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800181 "partition_utils.cpp",
Elliott Hughes4eacd702017-01-26 17:31:40 -0800182 "properties.cpp",
Chenbo Fengbaede732017-10-25 12:31:43 -0700183 "qtaguid.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800184 "trace-dev.cpp",
Luis Hector Chaveze97a4b92017-11-02 14:17:43 -0700185 "uevent.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700186 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700187 },
188
189 android_arm: {
190 srcs: ["arch-arm/memset32.S"],
191 sanitize: {
192 misc_undefined: ["integer"],
193 },
194 },
195 android_arm64: {
196 srcs: ["arch-arm64/android_memset.S"],
Evgenii Stepanov54c78862017-01-31 16:33:53 -0800197 sanitize: {
198 misc_undefined: ["integer"],
199 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700200 },
201
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700202 android_mips: {
203 srcs: ["arch-mips/android_memset.c"],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700204 sanitize: {
205 misc_undefined: ["integer"],
206 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700207 },
208 android_mips64: {
209 srcs: ["arch-mips/android_memset.c"],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700210 sanitize: {
211 misc_undefined: ["integer"],
212 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700213 },
214
215 android_x86: {
216 srcs: [
217 "arch-x86/android_memset16.S",
218 "arch-x86/android_memset32.S",
219 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700220 // TODO: This is to work around b/29412086.
221 // Remove once __mulodi4 is available and move the "sanitize" block
222 // to the android target.
223 sanitize: {
224 misc_undefined: [],
225 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700226 },
227
228 android_x86_64: {
229 srcs: [
230 "arch-x86_64/android_memset16.S",
231 "arch-x86_64/android_memset32.S",
232 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700233 sanitize: {
234 misc_undefined: ["integer"],
235 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700236 },
Logan Chien25b742c2018-05-08 17:37:29 +0800237
238 vendor: {
239 exclude_srcs: [
240 // qtaguid.cpp loads libnetd_client.so with dlopen(). Since
241 // the interface of libnetd_client.so may vary between AOSP
242 // releases, exclude qtaguid.cpp from the VNDK-SP variant.
243 "qtaguid.cpp",
244 ],
245 }
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700246 },
247
Josh Gaoa9b62d52020-02-19 13:50:57 -0800248 whole_static_libs: ["libcutils_sockets"],
Joel Fernandes51944042018-12-18 13:32:31 -0800249 shared_libs: [
250 "liblog",
251 "libbase",
252 ],
Steven Morelandd73be1b2017-04-13 23:48:57 -0700253 header_libs: [
Elliott Hughes9f495082018-04-25 14:52:50 -0700254 "libbase_headers",
Steven Morelandd73be1b2017-04-13 23:48:57 -0700255 "libcutils_headers",
256 "libutils_headers",
Suren Baghdasaryan1bd127b2019-01-25 05:30:52 +0000257 "libprocessgroup_headers",
Steven Morelandd73be1b2017-04-13 23:48:57 -0700258 ],
Suren Baghdasaryan1bd127b2019-01-25 05:30:52 +0000259 export_header_lib_headers: [
260 "libcutils_headers",
261 "libprocessgroup_headers",
262 ],
Yifan Hongb6807122017-07-25 15:24:04 -0700263 local_include_dirs: ["include"],
Vijay Venkatraman651f8382017-01-25 18:52:17 +0000264
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700265 cflags: [
266 "-Werror",
267 "-Wall",
268 "-Wextra",
269 ],
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700270}
271
Elliott Hughes01705e42019-02-07 12:41:37 -0800272cc_defaults {
273 name: "libcutils_test_default",
Elliott Hughes7e424842019-11-12 20:20:42 -0800274 srcs: [
275 "native_handle_test.cpp",
276 "sockets_test.cpp",
277 ],
Elliott Hughes01705e42019-02-07 12:41:37 -0800278
279 target: {
280 android: {
281 srcs: [
282 "android_get_control_file_test.cpp",
283 "android_get_control_socket_test.cpp",
284 "ashmem_test.cpp",
285 "fs_config_test.cpp",
286 "memset_test.cpp",
287 "multiuser_test.cpp",
288 "properties_test.cpp",
289 "sched_policy_test.cpp",
290 "str_parms_test.cpp",
291 "trace-dev_test.cpp",
292 ],
293 },
294
295 not_windows: {
296 srcs: [
297 "str_parms_test.cpp",
298 ],
299 },
300 },
301
302 cflags: [
303 "-Wall",
304 "-Wextra",
305 "-Werror",
306 ],
307}
308
309test_libraries = [
310 "libcutils",
311 "liblog",
312 "libbase",
313 "libjsoncpp",
314 "libprocessgroup",
Yifan Hong53e0deb2019-03-22 17:01:08 -0700315 "libcgrouprc",
Elliott Hughes01705e42019-02-07 12:41:37 -0800316]
317
318cc_test {
319 name: "libcutils_test",
320 test_suites: ["device-tests"],
321 defaults: ["libcutils_test_default"],
322 host_supported: true,
323 shared_libs: test_libraries,
Tom Cherrye41aded2019-11-07 14:06:21 -0800324 require_root: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800325}
326
nelsonlid83f3902020-01-16 17:20:18 +0800327cc_defaults {
328 name: "libcutils_test_static_defaults",
Elliott Hughes01705e42019-02-07 12:41:37 -0800329 defaults: ["libcutils_test_default"],
Yifan Hong53e0deb2019-03-22 17:01:08 -0700330 static_libs: [
331 "libc",
332 "libcgrouprc_format",
333 ] + test_libraries,
Elliott Hughes01705e42019-02-07 12:41:37 -0800334 stl: "libc++_static",
Tom Cherrye41aded2019-11-07 14:06:21 -0800335 require_root: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800336
337 target: {
338 android: {
339 static_executable: true,
340 },
341 windows: {
342 host_ldlibs: ["-lws2_32"],
343
344 enabled: true,
345 },
346 },
347}
nelsonlid83f3902020-01-16 17:20:18 +0800348
349cc_test {
350 name: "libcutils_test_static",
351 test_suites: ["device-tests"],
352 defaults: ["libcutils_test_static_defaults"],
353}
354
355cc_test {
356 name: "KernelLibcutilsTest",
357 test_suites: ["general-tests", "vts-core"],
358 defaults: ["libcutils_test_static_defaults"],
359 test_config: "KernelLibcutilsTest.xml",
360}