gen_android_bp: use gn_utils

This change uniforms the behavior of tools/gen_android_bp
with the one of tools/gen_bazel. This is required to add
a third generator (to get rid of checked-in proto->cpp
files).

Before this CL
gen_android_bp was dealing, among the other things, with:
1. Recursively traversing the source_set targets to figure
   out the transitive closure of sources for each linker
   unit. This is because, like bazel, Android.bp does not
   have the concept of source_sets like GN.
2. Detecting proto targets and reverse engineering the
   plugin from the protoc cmdline invocation.

gn_utils deals with these two responsibilities so there is
no reason to keep the ad-hoc behavior in gen_android_bp.
As a side effect, the generated Android.bp is a little bit
easier to reason about. Now we generate one filegroup for
each source set and add the transitive closure of file groups
(NOT the transitive closure of source files) to each linker
unit.

Test: I manually inspected the diff of the generated Android.bp
      and it seems legit. Also builds and passes tests.
Bug: 132880619
Bug: 115873049

Change-Id: If77a85aadbc4edecc8d7874cc14c1f427e1ec646
4 files changed
tree: 36938d5f8ec54b5f9bf80d4f10a3249ead41e3ff
  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. MODULE_LICENSE_APACHE2
  26. NOTICE
  27. OWNERS
  28. perfetto.rc
  29. PRESUBMIT.py
  30. README.chromium
  31. README.md
  32. TEST_MAPPING
  33. 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.

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.