| // Copyright (C) 2008 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| cc_library_headers { |
| name: "libutils_headers", |
| vendor_available: true, |
| recovery_available: true, |
| host_supported: true, |
| native_bridge_supported: true, |
| apex_available: [ |
| "//apex_available:platform", |
| "//apex_available:anyapex", |
| ], |
| |
| header_libs: [ |
| "liblog_headers", |
| "libsystem_headers", |
| "libcutils_headers", |
| "libprocessgroup_headers", |
| ], |
| export_header_lib_headers: [ |
| "liblog_headers", |
| "libsystem_headers", |
| "libcutils_headers", |
| "libprocessgroup_headers", |
| ], |
| export_include_dirs: ["include"], |
| |
| target: { |
| android: { |
| header_libs: ["libbacktrace_headers"], |
| export_header_lib_headers: ["libbacktrace_headers"], |
| }, |
| linux_bionic: { |
| enabled: true, |
| }, |
| windows: { |
| enabled: true, |
| }, |
| }, |
| } |
| |
| cc_defaults { |
| name: "libutils_defaults", |
| vendor_available: true, |
| recovery_available: true, |
| vndk: { |
| enabled: true, |
| support_system_process: true, |
| }, |
| host_supported: true, |
| |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| header_libs: [ |
| "libbase_headers", |
| "libutils_headers", |
| ], |
| export_header_lib_headers: [ |
| "libutils_headers", |
| ], |
| |
| shared_libs: [ |
| "libcutils", |
| "liblog", |
| ], |
| |
| target: { |
| android: { |
| cflags: ["-fvisibility=protected"], |
| |
| shared_libs: [ |
| "libprocessgroup", |
| "libdl", |
| "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, |
| }, |
| }, |
| } |
| |
| cc_library { |
| name: "libutils", |
| defaults: ["libutils_defaults"], |
| native_bridge_supported: true, |
| |
| srcs: [ |
| "Errors.cpp", |
| "FileMap.cpp", |
| "JenkinsHash.cpp", |
| "NativeHandle.cpp", |
| "Printer.cpp", |
| "PropertyMap.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", |
| ], |
| } |
| |
| cc_library { |
| name: "libutilscallstack", |
| defaults: ["libutils_defaults"], |
| |
| srcs: [ |
| "CallStack.cpp", |
| ], |
| |
| shared_libs: [ |
| "libutils", |
| "libbacktrace", |
| ], |
| |
| target: { |
| linux: { |
| srcs: [ |
| "ProcessCallStack.cpp", |
| ], |
| }, |
| darwin: { |
| enabled: false, |
| }, |
| windows: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_test { |
| name: "libutils_test", |
| host_supported: true, |
| |
| srcs: [ |
| "BitSet_test.cpp", |
| "FileMap_test.cpp", |
| "LruCache_test.cpp", |
| "Mutex_test.cpp", |
| "SharedBuffer_test.cpp", |
| "String8_test.cpp", |
| "String16_test.cpp", |
| "StrongPointer_test.cpp", |
| "Unicode_test.cpp", |
| "Vector_test.cpp", |
| ], |
| |
| target: { |
| android: { |
| srcs: [ |
| "SystemClock_test.cpp", |
| ], |
| shared_libs: [ |
| "libz", |
| "liblog", |
| "libcutils", |
| "libutils", |
| "libbase", |
| ], |
| }, |
| linux: { |
| srcs: [ |
| "Looper_test.cpp", |
| "RefBase_test.cpp", |
| ], |
| }, |
| host: { |
| static_libs: [ |
| "libutils", |
| "liblog", |
| "libbase", |
| ], |
| }, |
| }, |
| |
| cflags: [ |
| "-Wall", |
| "-Wextra", |
| "-Werror", |
| "-Wthread-safety", |
| ], |
| |
| test_suites: ["device-tests"], |
| } |
| |
| // TODO: the test infrastructure isn't yet capable of running this, |
| // so it's broken out into its own test so that the main libutils_tests |
| // can be in presubmit even if this can't. |
| |
| cc_test { |
| name: "libutils_singleton_test", |
| srcs: ["Singleton_test.cpp"], |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| shared_libs: ["libbase"], |
| |
| required: [ |
| ":libutils_test_singleton1", |
| ":libutils_test_singleton2", |
| ], |
| } |
| |
| cc_test_library { |
| name: "libutils_test_singleton1", |
| host_supported: true, |
| relative_install_path: "libutils_test", |
| srcs: ["Singleton_test1.cpp"], |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| } |
| |
| cc_test_library { |
| name: "libutils_test_singleton2", |
| host_supported: true, |
| relative_install_path: "libutils_test", |
| srcs: ["Singleton_test2.cpp"], |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| ], |
| shared_libs: ["libutils_test_singleton1"], |
| } |
| |
| cc_benchmark { |
| name: "libutils_benchmark", |
| srcs: ["Vector_benchmark.cpp"], |
| shared_libs: ["libutils"], |
| } |