blob: 284c0b94cd7eaad087e55c9f0fea7a9c0d831dbe [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
Tom Cherry167fbf52020-09-17 09:39:24 -070017filegroup {
18 name: "android_filesystem_config_header",
19 srcs: ["include/private/android_filesystem_config.h"],
20}
21
Dan Willemseneee8e7f2016-06-06 22:31:58 -070022// some files must not be compiled when building against Mingw
23// they correspond to features not used by our host development tools
24// which are also hard or even impossible to port to native Win32
25libcutils_nonwindows_sources = [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -080026 "fs.cpp",
Elliott Hughes9d127252018-07-13 10:54:49 -070027 "hashmap.cpp",
Jeff Sharkey53d37ba2017-11-09 17:41:09 -070028 "multiuser.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -080029 "str_parms.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -070030]
31
Vijay Venkatraman651f8382017-01-25 18:52:17 +000032cc_library_headers {
Vijay Venkatraman651f8382017-01-25 18:52:17 +000033 name: "libcutils_headers",
Steven Moreland385fe692017-04-13 14:29:58 -070034 vendor_available: true,
Jiyong Park612210c2018-04-27 21:48:43 +090035 recovery_available: true,
Tom Cherrya5edc0f2020-09-17 09:38:42 -070036 ramdisk_available: true,
Yifan Hong55015ff2020-10-27 16:37:06 -070037 vendor_ramdisk_available: true,
Vijay Venkatraman651f8382017-01-25 18:52:17 +000038 host_supported: true,
Jiyong Park8bf9b162020-03-07 16:36:09 +090039 apex_available: [
40 "//apex_available:platform",
41 "//apex_available:anyapex",
42 ],
Jooyung Han88f00f22020-04-16 18:48:33 +090043 min_sdk_version: "29",
dimitry051d5cb2019-05-16 14:17:00 +020044 native_bridge_supported: true,
Vijay Venkatraman651f8382017-01-25 18:52:17 +000045 export_include_dirs: ["include"],
46 target: {
Steven Moreland385fe692017-04-13 14:29:58 -070047 vendor: {
Steven Morelande1c834d2018-01-05 14:42:12 -080048 override_export_include_dirs: ["include_vndk"],
Steven Moreland385fe692017-04-13 14:29:58 -070049 },
Dan Willemsene0cd1e02017-03-15 15:23:36 -070050 linux_bionic: {
51 enabled: true,
52 },
53 windows: {
54 enabled: true,
55 },
Vijay Venkatraman651f8382017-01-25 18:52:17 +000056 },
57}
58
Josh Gaoa9b62d52020-02-19 13:50:57 -080059// Socket specific parts of libcutils that are safe to statically link into an APEX.
Josh Gao7f8a37c2020-03-09 15:20:55 -070060cc_library {
Josh Gaoa9b62d52020-02-19 13:50:57 -080061 name: "libcutils_sockets",
62 vendor_available: true,
Josh Gaoa9b62d52020-02-19 13:50:57 -080063 recovery_available: true,
Akilesh Kailashdfb1e082020-09-30 01:34:42 +000064 ramdisk_available: true,
Yifan Hong55015ff2020-10-27 16:37:06 -070065 vendor_ramdisk_available: true,
Josh Gaoa9b62d52020-02-19 13:50:57 -080066 host_supported: true,
67 native_bridge_supported: true,
68 apex_available: [
69 "//apex_available:platform",
70 "//apex_available:anyapex",
71 ],
Jooyung Han88f00f22020-04-16 18:48:33 +090072 min_sdk_version: "29",
Josh Gaoa9b62d52020-02-19 13:50:57 -080073
74 export_include_dirs: ["include"],
75
Josh Gao7f8a37c2020-03-09 15:20:55 -070076 shared_libs: ["liblog"],
Josh Gaoa9b62d52020-02-19 13:50:57 -080077 srcs: ["sockets.cpp"],
78 target: {
79 linux_bionic: {
80 enabled: true,
81 },
82
83 not_windows: {
84 srcs: [
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 },
92
93 // "not_windows" means "non-Windows host".
94 android: {
95 srcs: [
96 "android_get_control_file.cpp",
97 "socket_inaddr_any_server_unix.cpp",
98 "socket_local_client_unix.cpp",
99 "socket_local_server_unix.cpp",
100 "socket_network_client_unix.cpp",
101 "sockets_unix.cpp",
102 ],
103 static_libs: ["libbase"],
104 },
105
106 windows: {
107 host_ldlibs: ["-lws2_32"],
108 srcs: [
109 "socket_inaddr_any_server_windows.cpp",
110 "socket_network_client_windows.cpp",
111 "sockets_windows.cpp",
112 ],
113
114 enabled: true,
115 cflags: [
116 "-D_GNU_SOURCE",
117 ],
118 },
119 },
120}
121
122cc_test {
123 name: "libcutils_sockets_test",
124 test_suites: ["device-tests"],
125 static_libs: ["libbase", "libcutils_sockets"],
126 cflags: [
127 "-Wall",
128 "-Wextra",
129 "-Werror",
130 ],
131
132 srcs: ["sockets_test.cpp"],
133 target: {
134 android: {
135 srcs: [
136 "android_get_control_file_test.cpp",
137 "android_get_control_socket_test.cpp",
138 ],
139 },
140 },
141}
142
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700143cc_library {
144 name: "libcutils",
Steven Moreland385fe692017-04-13 14:29:58 -0700145 vendor_available: true,
Justin Yun9ca92452017-07-31 15:41:10 +0900146 vndk: {
147 enabled: true,
148 support_system_process: true,
149 },
Jiyong Park612210c2018-04-27 21:48:43 +0900150 recovery_available: true,
Yifan Hong55015ff2020-10-27 16:37:06 -0700151 vendor_ramdisk_available: true,
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700152 host_supported: true,
Jiyong Park8bf9b162020-03-07 16:36:09 +0900153 apex_available: [
154 "//apex_available:platform",
155 "//apex_available:anyapex",
156 ],
Jooyung Han88f00f22020-04-16 18:48:33 +0900157 min_sdk_version: "29",
dimitry051d5cb2019-05-16 14:17:00 +0200158 native_bridge_supported: true,
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700159 srcs: [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800160 "config_utils.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800161 "canned_fs_config.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800162 "iosched_policy.cpp",
163 "load_file.cpp",
Steven Morelandd22659b2020-10-05 23:20:11 +0000164 "memory.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800165 "native_handle.cpp",
S Vasudev Prasad100b08a2020-05-08 11:45:45 +0530166 "properties.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800167 "record_stream.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700168 "strlcpy.c",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800169 "threads.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700170 ],
171
172 target: {
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700173 linux_bionic: {
174 enabled: true,
Dan Willemsene0cd1e02017-03-15 15:23:36 -0700175 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700176 not_windows: {
177 srcs: libcutils_nonwindows_sources + [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800178 "ashmem-host.cpp",
Jiyong Parka2159c42019-02-03 00:34:29 +0900179 "fs_config.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800180 "trace-host.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700181 ],
182 },
183 windows: {
Steven Morelande6132be2019-03-25 20:38:56 -0700184 host_ldlibs: ["-lws2_32"],
185
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700186 srcs: [
David Sehreb2dd202018-12-20 12:59:36 -0800187 "trace-host.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700188 ],
189
190 enabled: true,
Mark Salyzyn163ecc62017-05-02 08:56:15 -0700191 cflags: [
192 "-D_GNU_SOURCE",
193 ],
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700194 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700195 android: {
196 srcs: libcutils_nonwindows_sources + [
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800197 "android_reboot.cpp",
198 "ashmem-dev.cpp",
Jiyong Parka2159c42019-02-03 00:34:29 +0900199 "fs_config.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700200 "klog.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800201 "partition_utils.cpp",
Chenbo Fengbaede732017-10-25 12:31:43 -0700202 "qtaguid.cpp",
Elliott Hughes8e9aeb92017-11-10 10:22:07 -0800203 "trace-dev.cpp",
Luis Hector Chaveze97a4b92017-11-02 14:17:43 -0700204 "uevent.cpp",
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700205 ],
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700206 },
Steven Morelandd22659b2020-10-05 23:20:11 +0000207 bionic: {
208 header_libs: ["bionic_libc_platform_headers"],
209 },
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700210
211 android_arm: {
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700212 sanitize: {
213 misc_undefined: ["integer"],
214 },
215 },
216 android_arm64: {
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700217 sanitize: {
218 misc_undefined: ["integer"],
219 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700220 },
221
222 android_x86: {
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700223 // TODO: This is to work around b/29412086.
224 // Remove once __mulodi4 is available and move the "sanitize" block
225 // to the android target.
226 sanitize: {
227 misc_undefined: [],
228 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700229 },
230
231 android_x86_64: {
Luis Hector Chavezfae195b2017-11-03 16:22:05 -0700232 sanitize: {
233 misc_undefined: ["integer"],
234 },
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700235 },
Logan Chien25b742c2018-05-08 17:37:29 +0800236
237 vendor: {
238 exclude_srcs: [
239 // qtaguid.cpp loads libnetd_client.so with dlopen(). Since
240 // the interface of libnetd_client.so may vary between AOSP
241 // releases, exclude qtaguid.cpp from the VNDK-SP variant.
242 "qtaguid.cpp",
243 ],
244 }
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700245 },
246
Josh Gaoa9b62d52020-02-19 13:50:57 -0800247 whole_static_libs: ["libcutils_sockets"],
Joel Fernandes51944042018-12-18 13:32:31 -0800248 shared_libs: [
249 "liblog",
250 "libbase",
251 ],
Steven Morelandd73be1b2017-04-13 23:48:57 -0700252 header_libs: [
Elliott Hughes9f495082018-04-25 14:52:50 -0700253 "libbase_headers",
Steven Morelandd73be1b2017-04-13 23:48:57 -0700254 "libcutils_headers",
255 "libutils_headers",
Suren Baghdasaryan1bd127b2019-01-25 05:30:52 +0000256 "libprocessgroup_headers",
Steven Morelandd73be1b2017-04-13 23:48:57 -0700257 ],
Suren Baghdasaryan1bd127b2019-01-25 05:30:52 +0000258 export_header_lib_headers: [
259 "libcutils_headers",
260 "libprocessgroup_headers",
261 ],
Yifan Hongb6807122017-07-25 15:24:04 -0700262 local_include_dirs: ["include"],
Vijay Venkatraman651f8382017-01-25 18:52:17 +0000263
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700264 cflags: [
265 "-Werror",
266 "-Wall",
267 "-Wextra",
268 ],
Dan Willemseneee8e7f2016-06-06 22:31:58 -0700269}
270
Elliott Hughes01705e42019-02-07 12:41:37 -0800271cc_defaults {
272 name: "libcutils_test_default",
Elliott Hughes7e424842019-11-12 20:20:42 -0800273 srcs: [
274 "native_handle_test.cpp",
S Vasudev Prasad100b08a2020-05-08 11:45:45 +0530275 "properties_test.cpp",
Elliott Hughes7e424842019-11-12 20:20:42 -0800276 "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",
Elliott Hughes01705e42019-02-07 12:41:37 -0800286 "multiuser_test.cpp",
Elliott Hughes01705e42019-02-07 12:41:37 -0800287 "sched_policy_test.cpp",
288 "str_parms_test.cpp",
289 "trace-dev_test.cpp",
290 ],
291 },
292
293 not_windows: {
294 srcs: [
295 "str_parms_test.cpp",
296 ],
297 },
298 },
299
300 cflags: [
301 "-Wall",
302 "-Wextra",
303 "-Werror",
304 ],
305}
306
307test_libraries = [
308 "libcutils",
309 "liblog",
310 "libbase",
311 "libjsoncpp",
312 "libprocessgroup",
Yifan Hong53e0deb2019-03-22 17:01:08 -0700313 "libcgrouprc",
Elliott Hughes01705e42019-02-07 12:41:37 -0800314]
315
316cc_test {
317 name: "libcutils_test",
318 test_suites: ["device-tests"],
319 defaults: ["libcutils_test_default"],
320 host_supported: true,
321 shared_libs: test_libraries,
Tom Cherrye41aded2019-11-07 14:06:21 -0800322 require_root: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800323}
324
nelsonlid83f3902020-01-16 17:20:18 +0800325cc_defaults {
326 name: "libcutils_test_static_defaults",
Elliott Hughes01705e42019-02-07 12:41:37 -0800327 defaults: ["libcutils_test_default"],
Yifan Hong53e0deb2019-03-22 17:01:08 -0700328 static_libs: [
329 "libc",
330 "libcgrouprc_format",
331 ] + test_libraries,
Elliott Hughes01705e42019-02-07 12:41:37 -0800332 stl: "libc++_static",
Tom Cherrye41aded2019-11-07 14:06:21 -0800333 require_root: true,
Elliott Hughes01705e42019-02-07 12:41:37 -0800334
335 target: {
336 android: {
337 static_executable: true,
338 },
339 windows: {
340 host_ldlibs: ["-lws2_32"],
341
342 enabled: true,
343 },
344 },
345}
nelsonlid83f3902020-01-16 17:20:18 +0800346
347cc_test {
348 name: "libcutils_test_static",
349 test_suites: ["device-tests"],
350 defaults: ["libcutils_test_static_defaults"],
351}
352
353cc_test {
354 name: "KernelLibcutilsTest",
Dan Shia7b9a2b2020-04-06 16:11:29 -0700355 test_suites: ["general-tests", "vts"],
nelsonlid83f3902020-01-16 17:20:18 +0800356 defaults: ["libcutils_test_static_defaults"],
357 test_config: "KernelLibcutilsTest.xml",
358}