Add support for running llvm sanitizers on Android

On Android, ASan requires to push the libclang_rt.so
shared library on the device. This CL reorganizes the
build files and adds a target to copy the library in
the output directory. Also adds a convenience script
to run tests on the device that takes care of pushing
the binary and the required libs.

Change-Id: I9710a2019c91748934b58951235aec025bb3d96a
4 files changed
tree: 06fab59bf289bc824f55fa8b2a7e2e586031f692
  1. build/
  2. buildtools/
  3. libtracing/
  4. .clang-format
  5. .gitignore
  6. .gn
  7. BUILD.gn
  8. codereview.settings
  9. README.md
README.md

Perfetto - Open-source building blocks for the full performance lifecycle of Google client platforms

Docs

See go/perfetto-one-pager

Building from a standalone checkout

If you are a chromium developer and have depot_tools installed you can avoid the build/ prefix below and just use gn/ninja from depot_tools.

  • Run build/install-build-deps to install third-party build deps (NDK etc)
  • Run build/gn args out/android to generate build files and enter in the editor:
    target_os = "android"  # or "linux" for local testing
    target_cpu = "arm"  # or "arm64"
    is_debug = true  # or false for release
    
  • Run build/ninja -C out/android all

Building from the Android tree

TODO. The plan is to autogenerate the Android.bp build files from the master GN build files (or temporarily maintain both until we can autogenerate them). Will come in next CLs.