blob: 135182c137f56a47bc38e992f7bd444dc0aa1ea6 [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.
Josh Gao7f8a37c2020-03-09 15:20:55 -070048cc_library {
Josh Gaoa9b62d52020-02-19 13:50:57 -080049 name: "libcutils_sockets",
50 vendor_available: true,
Josh Gaoa9b62d52020-02-19 13:50:57 -080051 recovery_available: true,
52 host_supported: true,
53 native_bridge_supported: true,
54 apex_available: [
55 "//apex_available:platform",
56 "//apex_available:anyapex",
57 ],
58
59 export_include_dirs: ["include"],
60
Josh Gao7f8a37c2020-03-09 15:20:55 -070061 shared_libs: ["liblog"],
Josh Gaoa9b62d52020-02-19 13:50:57 -080062 srcs: ["sockets.cpp"],
63 target: {
64 linux_bionic: {
65 enabled: true,
66 },
67
68 not_windows: {
69 srcs: [
70 "socket_inaddr_any_server_unix.cpp",
71 "socket_local_client_unix.cpp",
72 "socket_local_server_unix.cpp",
73 "socket_network_client_unix.cpp",
74 "sockets_unix.cpp",
75 ],
76 },
77
78 // "not_windows" means "non-Windows host".
79 android: {
80 srcs: [
81 "android_get_control_file.cpp",
82 "socket_inaddr_any_server_unix.cpp",
83 "socket_local_client_unix.cpp",
84 "socket_local_server_unix.cpp",
85 "socket_network_client_unix.cpp",
86 "sockets_unix.cpp",
87 ],
88 static_libs: ["libbase"],
89 },
90
91 windows: {
92 host_ldlibs: ["-lws2_32"],
93 srcs: [
94 "socket_inaddr_any_server_windows.cpp",
95 "socket_network_client_windows.cpp",
96 "sockets_windows.cpp",
97 ],
98
99 enabled: true,
100 cflags: [
101 "-D_GNU_SOURCE",
102 ],
103 },
104 },
105}
106
107cc_test {
108 name: "libcutils_sockets_test",
109 test_suites: ["device-tests"],
110 static_libs: ["libbase", "libcutils_sockets"],
111 cflags: [
112 "-Wall",
113 "-Wextra",
114 "-Werror",
115 ],
116
117 srcs: ["sockets_test.cpp"],
118 target: {
119 android: {
120 srcs: [
121 "android_get_control_file_test.cpp",
122 "android_get_control_socket_test.cpp",
123 ],
124 },
125 },
126}
127
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700128cc_library {
129 name: "libcutils",
Steven Moreland385fe692017-04-13 14:29:58 -0700130 vendor_available: true,
Justin Yun9ca92452017-07-31 15:41:10 +0900131 vndk: {
132 enabled: true,
133 support_system_process: true,
134 },
Jiyong Park612210c2018-04-27 21:48:43 +0900135 recovery_available: true,
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700136 host_supported: true,
dimitry051d5cb2019-05-16 14:17:00 +0200137 native_bridge_supported: true,
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700138 srcs: [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800139 "config_utils.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800140 "canned_fs_config.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800141 "iosched_policy.cpp",
142 "load_file.cpp",
143 "native_handle.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800144 "record_stream.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700145 "strlcpy.c",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800146 "threads.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700147 ],
148
149 target: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700150 linux_bionic: {
151 enabled: true,
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700152 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700153 not_windows: {
154 srcs: libcutils_nonwindows_sources + [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800155 "ashmem-host.cpp",
Jiyong Parka2159c42019-02-03 00:34:29 +0900156 "fs_config.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800157 "trace-host.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700158 ],
159 },
160 windows: {
Steven Morelande6132be2019-03-25 20:38:56 -0700161 host_ldlibs: ["-lws2_32"],
162
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700163 srcs: [
David Sehreb2dd202018-12-20 12:59:36 -0800164 "trace-host.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700165 ],
166
167 enabled: true,
Mark Salyzyn163ecc62017-05-02 08:56:15 -0700168 cflags: [
169 "-D_GNU_SOURCE",
170 ],
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700171 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700172 android: {
173 srcs: libcutils_nonwindows_sources + [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800174 "android_reboot.cpp",
175 "ashmem-dev.cpp",
Jiyong Parka2159c42019-02-03 00:34:29 +0900176 "fs_config.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700177 "klog.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800178 "partition_utils.cpp",
Elliott Hughes4eacd702017-01-26 17:31:40 -0800179 "properties.cpp",
Chenbo Fengbaede732017-10-25 12:31:43 -0700180 "qtaguid.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800181 "trace-dev.cpp",
Luis Hector Chaveze97a4b92017-11-02 14:17:43 -0700182 "uevent.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700183 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700184 },
185
186 android_arm: {
187 srcs: ["arch-arm/memset32.S"],
188 sanitize: {
189 misc_undefined: ["integer"],
190 },
191 },
192 android_arm64: {
193 srcs: ["arch-arm64/android_memset.S"],
Evgenii Stepanov54c78862017-01-31 16:33:53 -0800194 sanitize: {
195 misc_undefined: ["integer"],
196 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700197 },
198
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700199 android_x86: {
200 srcs: [
201 "arch-x86/android_memset16.S",
202 "arch-x86/android_memset32.S",
203 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700204 // TODO: This is to work around b/29412086.
205 // Remove once __mulodi4 is available and move the "sanitize" block
206 // to the android target.
207 sanitize: {
208 misc_undefined: [],
209 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700210 },
211
212 android_x86_64: {
213 srcs: [
214 "arch-x86_64/android_memset16.S",
215 "arch-x86_64/android_memset32.S",
216 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700217 sanitize: {
218 misc_undefined: ["integer"],
219 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700220 },
Logan Chien25b742c2018-05-08 17:37:29 +0800221
222 vendor: {
223 exclude_srcs: [
224 // qtaguid.cpp loads libnetd_client.so with dlopen(). Since
225 // the interface of libnetd_client.so may vary between AOSP
226 // releases, exclude qtaguid.cpp from the VNDK-SP variant.
227 "qtaguid.cpp",
228 ],
229 }
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700230 },
231
Josh Gaoa9b62d52020-02-19 13:50:57 -0800232 whole_static_libs: ["libcutils_sockets"],
Joel Fernandes51944042018-12-18 13:32:31 -0800233 shared_libs: [
234 "liblog",
235 "libbase",
236 ],
Steven Morelandd73be1b2017-04-13 23:48:57 -0700237 header_libs: [
Elliott Hughes9f495082018-04-25 14:52:50 -0700238 "libbase_headers",
Steven Morelandd73be1b2017-04-13 23:48:57 -0700239 "libcutils_headers",
240 "libutils_headers",
Suren Baghdasaryan1bd127b2019-01-25 05:30:52 +0000241 "libprocessgroup_headers",
Steven Morelandd73be1b2017-04-13 23:48:57 -0700242 ],
Suren Baghdasaryan1bd127b2019-01-25 05:30:52 +0000243 export_header_lib_headers: [
244 "libcutils_headers",
245 "libprocessgroup_headers",
246 ],
Yifan Hongb6807122017-07-25 15:24:04 -0700247 local_include_dirs: ["include"],
Vijay Venkatraman651f8382017-01-25 18:52:17 +0000248
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700249 cflags: [
250 "-Werror",
251 "-Wall",
252 "-Wextra",
253 ],
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700254}
255
Elliott Hughes01705e42019-02-07 12:41:37 -0800256cc_defaults {
257 name: "libcutils_test_default",
Elliott Hughes7e424842019-11-12 20:20:42 -0800258 srcs: [
259 "native_handle_test.cpp",
260 "sockets_test.cpp",
261 ],
Elliott Hughes01705e42019-02-07 12:41:37 -0800262
263 target: {
264 android: {
265 srcs: [
266 "android_get_control_file_test.cpp",
267 "android_get_control_socket_test.cpp",
268 "ashmem_test.cpp",
269 "fs_config_test.cpp",
270 "memset_test.cpp",
271 "multiuser_test.cpp",
272 "properties_test.cpp",
273 "sched_policy_test.cpp",
274 "str_parms_test.cpp",
275 "trace-dev_test.cpp",
276 ],
277 },
278
279 not_windows: {
280 srcs: [
281 "str_parms_test.cpp",
282 ],
283 },
284 },
285
286 cflags: [
287 "-Wall",
288 "-Wextra",
289 "-Werror",
290 ],
291}
292
293test_libraries = [
294 "libcutils",
295 "liblog",
296 "libbase",
297 "libjsoncpp",
298 "libprocessgroup",
Yifan Hong53e0deb2019-03-22 17:01:08 -0700299 "libcgrouprc",
Elliott Hughes01705e42019-02-07 12:41:37 -0800300]
301
302cc_test {
303 name: "libcutils_test",
304 test_suites: ["device-tests"],
305 defaults: ["libcutils_test_default"],
306 host_supported: true,
307 shared_libs: test_libraries,
Tom Cherrye41aded2019-11-07 14:06:21 -0800308 require_root: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800309}
310
nelsonlid83f3902020-01-16 17:20:18 +0800311cc_defaults {
312 name: "libcutils_test_static_defaults",
Elliott Hughes01705e42019-02-07 12:41:37 -0800313 defaults: ["libcutils_test_default"],
Yifan Hong53e0deb2019-03-22 17:01:08 -0700314 static_libs: [
315 "libc",
316 "libcgrouprc_format",
317 ] + test_libraries,
Elliott Hughes01705e42019-02-07 12:41:37 -0800318 stl: "libc++_static",
Tom Cherrye41aded2019-11-07 14:06:21 -0800319 require_root: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800320
321 target: {
322 android: {
323 static_executable: true,
324 },
325 windows: {
326 host_ldlibs: ["-lws2_32"],
327
328 enabled: true,
329 },
330 },
331}
nelsonlid83f3902020-01-16 17:20:18 +0800332
333cc_test {
334 name: "libcutils_test_static",
335 test_suites: ["device-tests"],
336 defaults: ["libcutils_test_static_defaults"],
337}
338
339cc_test {
340 name: "KernelLibcutilsTest",
341 test_suites: ["general-tests", "vts-core"],
342 defaults: ["libcutils_test_static_defaults"],
343 test_config: "KernelLibcutilsTest.xml",
344}