You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
372 lines
8.5 KiB
372 lines
8.5 KiB
package {
|
|
default_applicable_licenses: ["system_core_libcutils_license"],
|
|
}
|
|
|
|
license {
|
|
name: "system_core_libcutils_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"SPDX-license-identifier-Apache-2.0",
|
|
"SPDX-license-identifier-BSD",
|
|
"SPDX-license-identifier-MIT", // strlcpy.c
|
|
],
|
|
license_text: [
|
|
"NOTICE",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "android_filesystem_config_header",
|
|
srcs: ["include/private/android_filesystem_config.h"],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "libcutils_defaults",
|
|
cflags: [
|
|
"-Wno-exit-time-destructors",
|
|
],
|
|
|
|
product_available: true,
|
|
ramdisk_available: true,
|
|
recovery_available: true,
|
|
vendor_available: true,
|
|
vendor_ramdisk_available: true,
|
|
|
|
host_supported: true,
|
|
native_bridge_supported: true,
|
|
|
|
apex_available: [
|
|
"//apex_available:platform",
|
|
"//apex_available:anyapex",
|
|
],
|
|
min_sdk_version: "29",
|
|
}
|
|
|
|
cc_library_headers {
|
|
name: "libcutils_headers",
|
|
defaults: ["libcutils_defaults"],
|
|
|
|
export_include_dirs: ["include"],
|
|
target: {
|
|
vendor: {
|
|
override_export_include_dirs: ["include_outside_system"],
|
|
},
|
|
product: {
|
|
override_export_include_dirs: ["include_outside_system"],
|
|
},
|
|
linux_bionic: {
|
|
enabled: true,
|
|
},
|
|
windows: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
// Socket specific parts of libcutils that are safe to statically link into an APEX.
|
|
cc_library {
|
|
name: "libcutils_sockets",
|
|
defaults: ["libcutils_defaults"],
|
|
|
|
export_include_dirs: ["include"],
|
|
|
|
shared_libs: ["liblog"],
|
|
srcs: ["sockets.cpp"],
|
|
target: {
|
|
linux_bionic: {
|
|
enabled: true,
|
|
},
|
|
|
|
not_windows: {
|
|
srcs: [
|
|
"socket_inaddr_any_server_unix.cpp",
|
|
"socket_local_client_unix.cpp",
|
|
"socket_local_server_unix.cpp",
|
|
"socket_network_client_unix.cpp",
|
|
"sockets_unix.cpp",
|
|
],
|
|
},
|
|
|
|
// "not_windows" means "non-Windows host".
|
|
android: {
|
|
srcs: [
|
|
"android_get_control_file.cpp",
|
|
"socket_inaddr_any_server_unix.cpp",
|
|
"socket_local_client_unix.cpp",
|
|
"socket_local_server_unix.cpp",
|
|
"socket_network_client_unix.cpp",
|
|
"sockets_unix.cpp",
|
|
],
|
|
static_libs: ["libbase"],
|
|
},
|
|
|
|
windows: {
|
|
host_ldlibs: ["-lws2_32"],
|
|
srcs: [
|
|
"socket_inaddr_any_server_windows.cpp",
|
|
"socket_network_client_windows.cpp",
|
|
"sockets_windows.cpp",
|
|
],
|
|
|
|
enabled: true,
|
|
cflags: [
|
|
"-D_GNU_SOURCE",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_test {
|
|
name: "libcutils_sockets_test",
|
|
test_suites: ["device-tests"],
|
|
static_libs: ["libbase", "libcutils_sockets"],
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Werror",
|
|
],
|
|
|
|
srcs: ["sockets_test.cpp"],
|
|
target: {
|
|
android: {
|
|
srcs: [
|
|
"android_get_control_file_test.cpp",
|
|
"android_get_control_socket_test.cpp",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
// some files must not be compiled when building against Mingw
|
|
// they correspond to features not used by our host development tools
|
|
// which are also hard or even impossible to port to native Win32
|
|
libcutils_nonwindows_sources = [
|
|
"fs.cpp",
|
|
"hashmap.cpp",
|
|
"multiuser.cpp",
|
|
"str_parms.cpp",
|
|
]
|
|
|
|
cc_library {
|
|
name: "libcutils",
|
|
defaults: ["libcutils_defaults"],
|
|
vndk: {
|
|
enabled: true,
|
|
support_system_process: true,
|
|
},
|
|
srcs: [
|
|
"config_utils.cpp",
|
|
"canned_fs_config.cpp",
|
|
"iosched_policy.cpp",
|
|
"load_file.cpp",
|
|
"native_handle.cpp",
|
|
"properties.cpp",
|
|
"record_stream.cpp",
|
|
"strlcpy.c",
|
|
"threads.cpp",
|
|
],
|
|
|
|
target: {
|
|
linux_bionic: {
|
|
enabled: true,
|
|
},
|
|
not_windows: {
|
|
srcs: libcutils_nonwindows_sources + [
|
|
"ashmem-host.cpp",
|
|
"fs_config.cpp",
|
|
"trace-host.cpp",
|
|
],
|
|
},
|
|
windows: {
|
|
host_ldlibs: ["-lws2_32"],
|
|
|
|
srcs: [
|
|
"trace-host.cpp",
|
|
],
|
|
|
|
enabled: true,
|
|
cflags: [
|
|
"-D_GNU_SOURCE",
|
|
],
|
|
},
|
|
android: {
|
|
srcs: libcutils_nonwindows_sources + [
|
|
"android_reboot.cpp",
|
|
"ashmem-dev.cpp",
|
|
"fs_config.cpp",
|
|
"klog.cpp",
|
|
"partition_utils.cpp",
|
|
"qtaguid.cpp",
|
|
"trace-dev.cpp",
|
|
"uevent.cpp",
|
|
],
|
|
},
|
|
|
|
android_arm: {
|
|
sanitize: {
|
|
misc_undefined: ["integer"],
|
|
},
|
|
},
|
|
android_arm64: {
|
|
sanitize: {
|
|
misc_undefined: ["integer"],
|
|
},
|
|
},
|
|
|
|
android_x86: {
|
|
// TODO: This is to work around b/29412086.
|
|
// Remove once __mulodi4 is available and move the "sanitize" block
|
|
// to the android target.
|
|
sanitize: {
|
|
misc_undefined: [],
|
|
},
|
|
},
|
|
|
|
android_x86_64: {
|
|
sanitize: {
|
|
misc_undefined: ["integer"],
|
|
},
|
|
},
|
|
|
|
// qtaguid.cpp loads libnetd_client.so with dlopen(). Since
|
|
// the interface of libnetd_client.so may vary between AOSP
|
|
// releases, exclude qtaguid.cpp from the VNDK-SP variant.
|
|
vendor: {
|
|
exclude_srcs: [
|
|
"qtaguid.cpp",
|
|
],
|
|
},
|
|
product: {
|
|
exclude_srcs: [
|
|
"qtaguid.cpp",
|
|
],
|
|
},
|
|
},
|
|
|
|
whole_static_libs: ["libcutils_sockets"],
|
|
shared_libs: [
|
|
"liblog",
|
|
"libbase",
|
|
],
|
|
header_libs: [
|
|
"libbase_headers",
|
|
"libcutils_headers",
|
|
"libprocessgroup_headers",
|
|
],
|
|
export_header_lib_headers: [
|
|
"libcutils_headers",
|
|
"libprocessgroup_headers",
|
|
],
|
|
local_include_dirs: ["include"],
|
|
|
|
cflags: [
|
|
"-Werror",
|
|
"-Wall",
|
|
"-Wextra",
|
|
],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "libcutils_test_default",
|
|
srcs: [
|
|
"native_handle_test.cpp",
|
|
"properties_test.cpp",
|
|
"sockets_test.cpp",
|
|
],
|
|
|
|
target: {
|
|
android: {
|
|
srcs: [
|
|
"android_get_control_file_test.cpp",
|
|
"android_get_control_socket_test.cpp",
|
|
"ashmem_test.cpp",
|
|
"fs_config_test.cpp",
|
|
"multiuser_test.cpp",
|
|
"sched_policy_test.cpp",
|
|
"str_parms_test.cpp",
|
|
"trace-dev_test.cpp",
|
|
],
|
|
},
|
|
|
|
not_windows: {
|
|
srcs: [
|
|
"str_parms_test.cpp",
|
|
],
|
|
},
|
|
},
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Werror",
|
|
],
|
|
}
|
|
|
|
test_libraries = [
|
|
"libcutils",
|
|
"liblog",
|
|
"libbase",
|
|
"libjsoncpp",
|
|
"libprocessgroup",
|
|
"libcgrouprc",
|
|
]
|
|
|
|
cc_test {
|
|
name: "libcutils_test",
|
|
test_suites: ["device-tests"],
|
|
defaults: ["libcutils_test_default"],
|
|
host_supported: true,
|
|
shared_libs: test_libraries,
|
|
require_root: true,
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "libcutils_test_static_defaults",
|
|
defaults: ["libcutils_test_default"],
|
|
static_libs: [
|
|
"libc",
|
|
"libcgrouprc_format",
|
|
] + test_libraries,
|
|
stl: "libc++_static",
|
|
require_root: true,
|
|
|
|
target: {
|
|
android: {
|
|
static_executable: true,
|
|
},
|
|
windows: {
|
|
host_ldlibs: ["-lws2_32"],
|
|
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_test {
|
|
name: "libcutils_test_static",
|
|
test_suites: ["device-tests"],
|
|
defaults: ["libcutils_test_static_defaults"],
|
|
}
|
|
|
|
cc_test {
|
|
name: "KernelLibcutilsTest",
|
|
test_suites: ["general-tests", "vts"],
|
|
defaults: ["libcutils_test_static_defaults"],
|
|
test_config: "KernelLibcutilsTest.xml",
|
|
}
|
|
|
|
rust_bindgen {
|
|
name: "libcutils_bindgen",
|
|
wrapper_src: "rust/cutils.h",
|
|
crate_name: "cutils_bindgen",
|
|
source_stem: "bindings",
|
|
local_include_dirs: ["include"],
|
|
bindgen_flags: [
|
|
"--allowlist-function", "multiuser_get_app_id",
|
|
"--allowlist-function", "multiuser_get_uid",
|
|
"--allowlist-function", "multiuser_get_user_id",
|
|
"--allowlist-var", "AID_KEYSTORE",
|
|
"--allowlist-var", "AID_USER_OFFSET",
|
|
],
|
|
}
|