| cc_defaults { |
| name: "libmemunreachable_defaults", |
| |
| cflags: [ |
| "-Wall", |
| "-Wextra", |
| "-Werror", |
| ], |
| shared_libs: [ |
| "libbase", |
| ], |
| |
| target: { |
| android: { |
| static_libs: ["libasync_safe"], |
| }, |
| host: { |
| shared_libs: ["liblog"], |
| }, |
| }, |
| } |
| |
| cc_library { |
| name: "libmemunreachable", |
| defaults: ["libmemunreachable_defaults"], |
| srcs: [ |
| "Allocator.cpp", |
| "Binder.cpp", |
| "HeapWalker.cpp", |
| "LeakFolding.cpp", |
| "LeakPipe.cpp", |
| "LineBuffer.cpp", |
| "MemUnreachable.cpp", |
| "ProcessMappings.cpp", |
| "PtracerThread.cpp", |
| "ThreadCapture.cpp", |
| ], |
| |
| static_libs: [ |
| "libc_malloc_debug_backtrace", |
| ], |
| // Only need this for arm since libc++ uses its own unwind code that |
| // doesn't mix with the other default unwind code. |
| arch: { |
| arm: { |
| static_libs: ["libunwind_llvm"], |
| }, |
| }, |
| export_include_dirs: ["include"], |
| local_include_dirs: ["include"], |
| } |
| |
| cc_test { |
| name: "memunreachable_test", |
| defaults: ["libmemunreachable_defaults"], |
| host_supported: true, |
| srcs: [ |
| "tests/Allocator_test.cpp", |
| "tests/HeapWalker_test.cpp", |
| "tests/LeakFolding_test.cpp", |
| ], |
| |
| target: { |
| android: { |
| srcs: [ |
| "tests/DisableMalloc_test.cpp", |
| "tests/MemUnreachable_test.cpp", |
| "tests/ThreadCapture_test.cpp", |
| ], |
| shared_libs: [ |
| "libmemunreachable", |
| ], |
| }, |
| host: { |
| srcs: [ |
| "Allocator.cpp", |
| "HeapWalker.cpp", |
| "LeakFolding.cpp", |
| "tests/HostMallocStub.cpp", |
| ], |
| }, |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_test { |
| name: "memunreachable_binder_test", |
| defaults: ["libmemunreachable_defaults"], |
| srcs: [ |
| "tests/Binder_test.cpp", |
| ], |
| static_libs: ["libmemunreachable"], |
| shared_libs: [ |
| "libbinder", |
| "libhwbinder", |
| "libutils", |
| ], |
| } |