| package { |
| default_applicable_licenses: ["system_core_libutils_license"], |
| } |
| |
| license { |
| name: "system_core_libutils_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-Apache-2.0", |
| ], |
| license_text: [ |
| "NOTICE", |
| ], |
| } |
| |
| cc_library_headers { |
| name: "libutils_headers", |
| vendor_available: true, |
| product_available: true, |
| recovery_available: true, |
| vendor_ramdisk_available: true, |
| host_supported: true, |
| native_bridge_supported: true, |
| defaults: [ |
| "apex-lowest-min-sdk-version", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "//apex_available:anyapex", |
| ], |
| |
| header_libs: [ |
| "libbase_headers", |
| "libcutils_headers", |
| "liblog_headers", |
| "libprocessgroup_headers", |
| "libsystem_headers", |
| ], |
| export_header_lib_headers: [ |
| "libbase_headers", |
| "libcutils_headers", |
| "liblog_headers", |
| "libprocessgroup_headers", |
| "libsystem_headers", |
| ], |
| export_include_dirs: ["include"], |
| |
| target: { |
| linux_bionic: { |
| enabled: true, |
| }, |
| windows: { |
| enabled: true, |
| }, |
| }, |
| } |
| |
| cc_defaults { |
| name: "libutils_defaults", |
| vendor_available: true, |
| product_available: true, |
| recovery_available: true, |
| host_supported: true, |
| |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| "-Wno-exit-time-destructors", |
| "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION", |
| ], |
| header_libs: [ |
| "libbase_headers", |
| "libutils_headers", |
| ], |
| export_header_lib_headers: [ |
| "libutils_headers", |
| ], |
| |
| shared_libs: [ |
| "libcutils", |
| "liblog", |
| ], |
| sanitize: { |
| misc_undefined: ["integer"], |
| }, |
| |
| target: { |
| android: { |
| cflags: ["-fvisibility=protected"], |
| |
| shared_libs: [ |
| "libvndksupport", |
| ], |
| |
| sanitize: { |
| misc_undefined: ["integer"], |
| }, |
| }, |
| |
| recovery: { |
| exclude_shared_libs: ["libvndksupport"], |
| }, |
| |
| linux_bionic: { |
| enabled: true, |
| }, |
| |
| darwin: { |
| cflags: ["-Wno-unused-parameter"], |
| }, |
| |
| windows: { |
| cflags: [ |
| // Under MinGW, ctype.h doesn't need multi-byte support |
| "-DMB_CUR_MAX=1", |
| "-Wno-unused-private-field", |
| ], |
| |
| enabled: true, |
| }, |
| }, |
| fuzz_config: { |
| cc: ["smoreland@google.com"], |
| }, |
| } |
| |
| cc_defaults { |
| name: "libutils_impl_defaults", |
| defaults: [ |
| "libutils_defaults", |
| "apex-lowest-min-sdk-version", |
| ], |
| native_bridge_supported: true, |
| |
| srcs: [ |
| "Errors.cpp", |
| "FileMap.cpp", |
| "JenkinsHash.cpp", |
| "LightRefBase.cpp", |
| "NativeHandle.cpp", |
| "Printer.cpp", |
| "RefBase.cpp", |
| "SharedBuffer.cpp", |
| "StopWatch.cpp", |
| "String8.cpp", |
| "String16.cpp", |
| "StrongPointer.cpp", |
| "SystemClock.cpp", |
| "Threads.cpp", |
| "Timers.cpp", |
| "Tokenizer.cpp", |
| "Unicode.cpp", |
| "VectorImpl.cpp", |
| "misc.cpp", |
| ], |
| |
| target: { |
| android: { |
| srcs: [ |
| "Trace.cpp", |
| ], |
| }, |
| linux: { |
| header_libs: ["libbase_headers"], |
| srcs: [ |
| "Looper.cpp", |
| ], |
| }, |
| }, |
| |
| apex_available: [ |
| "//apex_available:anyapex", |
| "//apex_available:platform", |
| ], |
| |
| afdo: true, |
| } |
| |
| cc_library { |
| name: "libutils", |
| defaults: ["libutils_impl_defaults"], |
| |
| vndk: { |
| enabled: true, |
| support_system_process: true, |
| }, |
| |
| header_abi_checker: { |
| // AFDO affects weak symbols. |
| diff_flags: ["-allow-adding-removing-weak-symbols"], |
| ref_dump_dirs: ["abi-dumps"], |
| }, |
| } |
| |
| cc_library { |
| name: "libutils_test_compile", |
| defaults: ["libutils_impl_defaults"], |
| |
| cflags: [ |
| "-DCALLSTACKS=1", |
| "-DDEBUG_POLL_AND_WAKE=1", |
| "-DDEBUG_REFS=1", |
| "-DDEBUG_TOKENIZER=1", |
| ], |
| |
| visibility: [":__subpackages__"], |
| } |
| |
| cc_library { |
| name: "libutilscallstack", |
| defaults: ["libutils_defaults"], |
| // TODO(b/153609531): remove when no longer needed. |
| native_bridge_supported: true, |
| min_sdk_version: "29", |
| vndk: { |
| enabled: true, |
| support_system_process: true, |
| }, |
| |
| srcs: [ |
| "CallStack.cpp", |
| ], |
| |
| shared_libs: [ |
| "libutils", |
| "libunwindstack", |
| ], |
| |
| target: { |
| linux: { |
| srcs: [ |
| "ProcessCallStack.cpp", |
| ], |
| }, |
| darwin: { |
| enabled: false, |
| }, |
| windows: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_defaults { |
| name: "libutils_fuzz_defaults", |
| host_supported: true, |
| shared_libs: [ |
| "libutils", |
| "libbase", |
| "liblog", |
| ], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_bitset", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["BitSet_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_filemap", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["FileMap_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_string8", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["String8_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_string16", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["String16_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_vector", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["Vector_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_printer", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["Printer_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_callstack", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["CallStack_fuzz.cpp"], |
| shared_libs: [ |
| "libutilscallstack", |
| ], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_process_callstack", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["ProcessCallStack_fuzz.cpp"], |
| shared_libs: [ |
| "libutilscallstack", |
| ], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_refbase", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["RefBase_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_lrucache", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["LruCache_fuzz.cpp"], |
| } |
| |
| cc_fuzz { |
| name: "libutils_fuzz_looper", |
| defaults: ["libutils_fuzz_defaults"], |
| srcs: ["Looper_fuzz.cpp"], |
| } |
| |
| cc_test { |
| name: "libutils_test", |
| host_supported: true, |
| |
| srcs: [ |
| "BitSet_test.cpp", |
| "CallStack_test.cpp", |
| "Errors_test.cpp", |
| "FileMap_test.cpp", |
| "LruCache_test.cpp", |
| "Mutex_test.cpp", |
| "SharedBuffer_test.cpp", |
| "Singleton_test.cpp", |
| "String16_test.cpp", |
| "String8_test.cpp", |
| "StrongPointer_test.cpp", |
| "Timers_test.cpp", |
| "Unicode_test.cpp", |
| "Vector_test.cpp", |
| ], |
| |
| target: { |
| android: { |
| srcs: [ |
| "SystemClock_test.cpp", |
| ], |
| shared_libs: [ |
| "libbase", |
| "libcutils", |
| "liblog", |
| "liblzma", |
| "libunwindstack", |
| "libutils", |
| "libutilscallstack", |
| "libz", |
| ], |
| }, |
| linux: { |
| srcs: [ |
| "Looper_test.cpp", |
| "RefBase_test.cpp", |
| ], |
| }, |
| host: { |
| static_libs: [ |
| "libbase", |
| "liblog", |
| "liblzma", |
| "libunwindstack_no_dex", |
| "libutils", |
| "libutilscallstack", |
| ], |
| }, |
| }, |
| |
| data_libs: [ |
| "libutils_test_singleton1", |
| "libutils_test_singleton2", |
| ], |
| |
| cflags: [ |
| "-Wall", |
| "-Wextra", |
| "-Werror", |
| "-Wthread-safety", |
| ], |
| |
| test_suites: ["device-tests"], |
| } |
| |
| cc_test_library { |
| name: "libutils_test_singleton1", |
| host_supported: true, |
| installable: false, |
| srcs: ["Singleton_test1.cpp"], |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| header_libs: ["libutils_headers"], |
| } |
| |
| cc_test_library { |
| name: "libutils_test_singleton2", |
| host_supported: true, |
| installable: false, |
| srcs: ["Singleton_test2.cpp"], |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| shared_libs: ["libutils_test_singleton1"], |
| header_libs: ["libutils_headers"], |
| } |
| |
| cc_benchmark { |
| name: "libutils_benchmark", |
| srcs: ["Vector_benchmark.cpp"], |
| shared_libs: ["libutils"], |
| } |