| // 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, | |
| 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", | |
| ], | |
| arch: { | |
| mips: { | |
| cflags: ["-DALIGN_DOUBLE"], | |
| }, | |
| }, | |
| 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"], | |
| srcs: [ | |
| "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", | |
| ], | |
| }, | |
| }, | |
| } | |
| cc_library { | |
| name: "libutilscallstack", | |
| defaults: ["libutils_defaults"], | |
| srcs: [ | |
| "CallStack.cpp", | |
| ], | |
| arch: { | |
| mips: { | |
| cflags: ["-DALIGN_DOUBLE"], | |
| }, | |
| }, | |
| 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", | |
| "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"], | |
| } |