GN: clean up build files, split ipc client/service

This CL refactors the build files to allow a cleaner
separation of producer, consumer and service code by
later CLs. The end goal is to allow clients to link
a reduced version of the client library with only the
the producer code in Android (i.e. no kInProcess mode)
to reduce binary size and memory usage (see bug).
This CL alone doesn't reduce the binary size but just
puts the GN files in a better state. Changes introduced:

1. src/tracing: create GN files for each sub-directory
   instead of having one monster BUILD.gn.

2. Split the src/ipc targets into client vs host.

3. Split the src/tracing/ipc targets into
   producer, consumer, service.

4. Some further minor cleanups.

Bug: 148198993
Change-Id: Ie501c930255b10b8eafcd61b7226cd49e32728be
39 files changed
tree: 553531ef180fc2f12eb8f1172b64590c6713537f
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. gn/
  7. include/
  8. infra/
  9. protos/
  10. src/
  11. test/
  12. tools/
  13. ui/
  14. .clang-format
  15. .gitignore
  16. .gn
  17. .style.yapf
  18. Android.bp
  19. Android.bp.extras
  20. BUILD
  21. BUILD.extras
  22. BUILD.gn
  23. codereview.settings
  24. heapprofd.rc
  25. LICENSE
  26. MODULE_LICENSE_APACHE2
  27. NOTICE
  28. OWNERS
  29. perfetto.rc
  30. PRESUBMIT.py
  31. README.chromium
  32. README.md
  33. TEST_MAPPING
  34. WORKSPACE
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Contributing

See /docs/contributing.md for instructions.

The source-of-truth repo is Android's Gerrit. The GitHub repo is a read-only mirror.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.

Community

You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev on Freenode.