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
diff --git a/Android.bp b/Android.bp
index 55a3284..83e180e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -14,6 +14,7 @@
 //
 // This file is automatically generated by tools/gen_android_bp. Do not edit.
 
+// GN: //src/trace_processor/metrics:gen_merged_sql_metrics
 genrule {
   name: "gen_merged_sql_metrics",
   srcs: [
@@ -49,10 +50,19 @@
   ],
 }
 
-// GN target: //src/profiling/memory:heapprofd
+// GN: //src/profiling/memory:heapprofd
 cc_binary {
   name: "heapprofd",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_profiling_normalize",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -91,82 +101,19 @@
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/profiling/memory/bookkeeping.cc",
-    "src/profiling/memory/bookkeeping_dump.cc",
-    "src/profiling/memory/heapprofd_config.cc",
-    "src/profiling/memory/heapprofd_producer.cc",
-    "src/profiling/memory/java_hprof_config.cc",
-    "src/profiling/memory/java_hprof_producer.cc",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
+    ":perfetto_src_profiling_memory_daemon",
+    ":perfetto_src_profiling_memory_proc_utils",
+    ":perfetto_src_profiling_memory_ring_buffer",
+    ":perfetto_src_profiling_memory_scoped_spinlock",
+    ":perfetto_src_profiling_memory_wire_protocol",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_tracing",
     "src/profiling/memory/main.cc",
-    "src/profiling/memory/page_idle_checker.cc",
-    "src/profiling/memory/proc_utils.cc",
-    "src/profiling/memory/scoped_spinlock.cc",
-    "src/profiling/memory/shared_ring_buffer.cc",
-    "src/profiling/memory/system_property.cc",
-    "src/profiling/memory/unwinding.cc",
-    "src/profiling/memory/utils.cc",
-    "src/profiling/memory/wire_protocol.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "libbase",
@@ -227,34 +174,21 @@
   ],
 }
 
-// GN target: //src/profiling/memory:heapprofd_client
+// GN: //src/profiling/memory:heapprofd_client
 cc_library_shared {
   name: "heapprofd_client",
   srcs: [
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/profiling/memory/client.cc",
-    "src/profiling/memory/malloc_hooks.cc",
-    "src/profiling/memory/proc_utils.cc",
-    "src/profiling/memory/scoped_spinlock.cc",
-    "src/profiling/memory/shared_ring_buffer.cc",
-    "src/profiling/memory/wire_protocol.cc",
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_profiling_normalize",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_profiling_memory_client",
+    ":perfetto_src_profiling_memory_malloc_hooks",
+    ":perfetto_src_profiling_memory_proc_utils",
+    ":perfetto_src_profiling_memory_ring_buffer",
+    ":perfetto_src_profiling_memory_scoped_spinlock",
+    ":perfetto_src_profiling_memory_wire_protocol",
   ],
   shared_libs: [
     "libbase",
@@ -282,10 +216,42 @@
   ],
 }
 
-// GN target: //:libperfetto
+// GN: //src/ipc/protoc_plugin:ipc_plugin
+cc_binary_host {
+  name: "ipc_plugin",
+  srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_src_base_base",
+    "src/ipc/protoc_plugin/ipc_plugin.cc",
+  ],
+  shared_libs: [
+    "libprotoc",
+  ],
+  defaults: [
+    "perfetto_defaults",
+  ],
+  cflags: [
+    "-DGOOGLE_PROTOBUF_NO_RTTI",
+    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+  ],
+}
+
+// GN: //:libperfetto
 cc_library_shared {
   name: "libperfetto",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    ":perfetto_include_perfetto_ext_traced_traced",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_public_public",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -324,103 +290,29 @@
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
-    "src/android_internal/lazy_library_loader.cc",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/traced/probes/android_log/android_log_data_source.cc",
-    "src/traced/probes/filesystem/file_scanner.cc",
-    "src/traced/probes/filesystem/fs_mount.cc",
-    "src/traced/probes/filesystem/inode_file_data_source.cc",
-    "src/traced/probes/filesystem/lru_inode_cache.cc",
-    "src/traced/probes/filesystem/prefix_finder.cc",
-    "src/traced/probes/filesystem/range_tree.cc",
-    "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
-    "src/traced/probes/ftrace/atrace_wrapper.cc",
-    "src/traced/probes/ftrace/compact_sched.cc",
-    "src/traced/probes/ftrace/cpu_reader.cc",
-    "src/traced/probes/ftrace/cpu_stats_parser.cc",
-    "src/traced/probes/ftrace/event_info.cc",
-    "src/traced/probes/ftrace/event_info_constants.cc",
-    "src/traced/probes/ftrace/format_parser.cc",
-    "src/traced/probes/ftrace/ftrace_config.cc",
-    "src/traced/probes/ftrace/ftrace_config_muxer.cc",
-    "src/traced/probes/ftrace/ftrace_config_utils.cc",
-    "src/traced/probes/ftrace/ftrace_controller.cc",
-    "src/traced/probes/ftrace/ftrace_data_source.cc",
-    "src/traced/probes/ftrace/ftrace_metadata.cc",
-    "src/traced/probes/ftrace/ftrace_procfs.cc",
-    "src/traced/probes/ftrace/ftrace_stats.cc",
-    "src/traced/probes/ftrace/proto_translation_table.cc",
-    "src/traced/probes/metatrace/metatrace_data_source.cc",
-    "src/traced/probes/packages_list/packages_list_data_source.cc",
-    "src/traced/probes/power/android_power_data_source.cc",
-    "src/traced/probes/probes.cc",
-    "src/traced/probes/probes_data_source.cc",
-    "src/traced/probes/probes_producer.cc",
-    "src/traced/probes/ps/process_stats_data_source.cc",
-    "src/traced/probes/sys_stats/sys_stats_data_source.cc",
-    "src/traced/service/builtin_producer.cc",
-    "src/traced/service/service.cc",
-    "src/tracing/api_impl/consumer_api.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/trace_writer_base.cc",
+    ":perfetto_src_android_internal_headers",
+    ":perfetto_src_android_internal_lazy_library_loader",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_traced_probes_android_log_android_log",
+    ":perfetto_src_traced_probes_data_source",
+    ":perfetto_src_traced_probes_filesystem_filesystem",
+    ":perfetto_src_traced_probes_ftrace_format_parser",
+    ":perfetto_src_traced_probes_ftrace_ftrace",
+    ":perfetto_src_traced_probes_metatrace_metatrace",
+    ":perfetto_src_traced_probes_packages_list_packages_list",
+    ":perfetto_src_traced_probes_power_power",
+    ":perfetto_src_traced_probes_probes",
+    ":perfetto_src_traced_probes_probes_src",
+    ":perfetto_src_traced_probes_ps_ps",
+    ":perfetto_src_traced_probes_sys_stats_sys_stats",
+    ":perfetto_src_traced_service_service",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_consumer_api_deprecated",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_tracing",
   ],
   shared_libs: [
     "liblog",
@@ -480,15 +372,12 @@
   ],
 }
 
-// GN target: //src/android_internal:libperfetto_android_internal
+// GN: //src/android_internal:libperfetto_android_internal
 cc_library_shared {
   name: "libperfetto_android_internal",
   srcs: [
-    "src/android_internal/atrace_hal.cc",
-    "src/android_internal/dropbox_service.cc",
-    "src/android_internal/health_hal.cc",
-    "src/android_internal/incident_service.cc",
-    "src/android_internal/power_stats_hal.cc",
+    ":perfetto_src_android_internal_android_internal",
+    ":perfetto_src_android_internal_headers",
   ],
   shared_libs: [
     "android.hardware.atrace@1.0",
@@ -519,10 +408,18 @@
   },
 }
 
-// GN target: //:libperfetto_client_experimental
+// GN: //:libperfetto_client_experimental
 cc_library_static {
   name: "libperfetto_client_experimental",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -561,76 +458,15 @@
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/data_source.cc",
-    "src/tracing/internal/in_process_tracing_backend.cc",
-    "src/tracing/internal/system_tracing_backend.cc",
-    "src/tracing/internal/tracing_muxer_impl.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/platform.cc",
-    "src/tracing/platform_posix.cc",
-    "src/tracing/trace_writer_base.cc",
-    "src/tracing/tracing.cc",
-    "src/tracing/track_event.cc",
-    "src/tracing/virtual_destructors.cc",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_tracing_client_api",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_platform_posix",
+    ":perfetto_src_tracing_tracing",
   ],
   shared_libs: [
     "libprotobuf-cpp-lite",
@@ -728,10 +564,19 @@
   ],
 }
 
-// GN target: //src/perfetto_cmd:perfetto
+// GN: //src/perfetto_cmd:perfetto
 cc_binary {
   name: "perfetto",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_traced_traced",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -770,77 +615,19 @@
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
+    ":perfetto_src_android_internal_headers",
+    ":perfetto_src_android_internal_lazy_library_loader",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
+    ":perfetto_src_perfetto_cmd_perfetto_cmd",
     ":perfetto_src_perfetto_cmd_protos_gen",
-    "src/android_internal/lazy_library_loader.cc",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/perfetto_cmd/config.cc",
+    ":perfetto_src_perfetto_cmd_trigger_producer",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_tracing",
     "src/perfetto_cmd/main.cc",
-    "src/perfetto_cmd/packet_writer.cc",
-    "src/perfetto_cmd/pbtxt_to_pb.cc",
-    "src/perfetto_cmd/perfetto_cmd.cc",
-    "src/perfetto_cmd/perfetto_cmd_android.cc",
-    "src/perfetto_cmd/rate_limiter.cc",
-    "src/perfetto_cmd/trigger_producer.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "liblog",
@@ -898,6 +685,7 @@
   ],
 }
 
+// GN: //gn:default_deps
 cc_defaults {
   name: "perfetto_defaults",
   cflags: [
@@ -927,10 +715,91 @@
   },
 }
 
-// GN target: //:perfetto_integrationtests
+// GN: //include/perfetto/base:base
+filegroup {
+  name: "perfetto_include_perfetto_base_base",
+}
+
+// GN: //include/perfetto/ext/base:base
+filegroup {
+  name: "perfetto_include_perfetto_ext_base_base",
+}
+
+// GN: //include/perfetto/ext/ipc:ipc
+filegroup {
+  name: "perfetto_include_perfetto_ext_ipc_ipc",
+}
+
+// GN: //include/perfetto/ext/traced:sys_stats_counters
+filegroup {
+  name: "perfetto_include_perfetto_ext_traced_sys_stats_counters",
+}
+
+// GN: //include/perfetto/ext/traced:traced
+filegroup {
+  name: "perfetto_include_perfetto_ext_traced_traced",
+}
+
+// GN: //include/perfetto/ext/tracing/core:core
+filegroup {
+  name: "perfetto_include_perfetto_ext_tracing_core_core",
+}
+
+// GN: //include/perfetto/ext/tracing/ipc:ipc
+filegroup {
+  name: "perfetto_include_perfetto_ext_tracing_ipc_ipc",
+}
+
+// GN: //include/perfetto/profiling:normalize
+filegroup {
+  name: "perfetto_include_perfetto_profiling_normalize",
+}
+
+// GN: //include/perfetto/profiling:symbolizer
+filegroup {
+  name: "perfetto_include_perfetto_profiling_symbolizer",
+}
+
+// GN: //include/perfetto/protozero:protozero
+filegroup {
+  name: "perfetto_include_perfetto_protozero_protozero",
+}
+
+// GN: //include/perfetto/public:public
+filegroup {
+  name: "perfetto_include_perfetto_public_public",
+}
+
+// GN: //include/perfetto/trace_processor:trace_processor
+filegroup {
+  name: "perfetto_include_perfetto_trace_processor_trace_processor",
+}
+
+// GN: //include/perfetto/tracing/core:core
+filegroup {
+  name: "perfetto_include_perfetto_tracing_core_core",
+}
+
+// GN: //include/perfetto/tracing:tracing
+filegroup {
+  name: "perfetto_include_perfetto_tracing_tracing",
+}
+
+// GN: //:perfetto_integrationtests
 cc_test {
   name: "perfetto_integrationtests",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    ":perfetto_include_perfetto_ext_traced_traced",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_profiling_normalize",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -982,136 +851,44 @@
     ":perfetto_protos_perfetto_trace_track_event_lite_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
-    "src/android_internal/lazy_library_loader.cc",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/test/test_task_runner.cc",
-    "src/base/test/utils.cc",
-    "src/base/test/vm_test_utils.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/profiling/memory/bookkeeping.cc",
-    "src/profiling/memory/bookkeeping_dump.cc",
-    "src/profiling/memory/client.cc",
-    "src/profiling/memory/heapprofd_config.cc",
-    "src/profiling/memory/heapprofd_end_to_end_test.cc",
-    "src/profiling/memory/heapprofd_producer.cc",
-    "src/profiling/memory/java_hprof_config.cc",
-    "src/profiling/memory/java_hprof_producer.cc",
-    "src/profiling/memory/page_idle_checker.cc",
-    "src/profiling/memory/proc_utils.cc",
-    "src/profiling/memory/scoped_spinlock.cc",
-    "src/profiling/memory/shared_ring_buffer.cc",
-    "src/profiling/memory/system_property.cc",
-    "src/profiling/memory/unwinding.cc",
-    "src/profiling/memory/utils.cc",
-    "src/profiling/memory/wire_protocol.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/traced/probes/android_log/android_log_data_source.cc",
-    "src/traced/probes/filesystem/file_scanner.cc",
-    "src/traced/probes/filesystem/fs_mount.cc",
-    "src/traced/probes/filesystem/inode_file_data_source.cc",
-    "src/traced/probes/filesystem/lru_inode_cache.cc",
-    "src/traced/probes/filesystem/prefix_finder.cc",
-    "src/traced/probes/filesystem/range_tree.cc",
-    "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
-    "src/traced/probes/ftrace/atrace_wrapper.cc",
-    "src/traced/probes/ftrace/compact_sched.cc",
-    "src/traced/probes/ftrace/cpu_reader.cc",
-    "src/traced/probes/ftrace/cpu_stats_parser.cc",
-    "src/traced/probes/ftrace/event_info.cc",
-    "src/traced/probes/ftrace/event_info_constants.cc",
-    "src/traced/probes/ftrace/format_parser.cc",
-    "src/traced/probes/ftrace/ftrace_config.cc",
-    "src/traced/probes/ftrace/ftrace_config_muxer.cc",
-    "src/traced/probes/ftrace/ftrace_config_utils.cc",
-    "src/traced/probes/ftrace/ftrace_controller.cc",
-    "src/traced/probes/ftrace/ftrace_data_source.cc",
-    "src/traced/probes/ftrace/ftrace_metadata.cc",
-    "src/traced/probes/ftrace/ftrace_procfs.cc",
-    "src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc",
-    "src/traced/probes/ftrace/ftrace_stats.cc",
-    "src/traced/probes/ftrace/proto_translation_table.cc",
-    "src/traced/probes/ftrace/test/cpu_reader_support.cc",
-    "src/traced/probes/metatrace/metatrace_data_source.cc",
-    "src/traced/probes/packages_list/packages_list_data_source.cc",
-    "src/traced/probes/power/android_power_data_source.cc",
-    "src/traced/probes/probes_data_source.cc",
-    "src/traced/probes/probes_producer.cc",
-    "src/traced/probes/ps/process_stats_data_source.cc",
-    "src/traced/probes/sys_stats/sys_stats_data_source.cc",
-    "src/tracing/api_integrationtest.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/data_source.cc",
-    "src/tracing/internal/in_process_tracing_backend.cc",
-    "src/tracing/internal/system_tracing_backend.cc",
-    "src/tracing/internal/tracing_muxer_impl.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/platform.cc",
-    "src/tracing/platform_posix.cc",
-    "src/tracing/test/api_test_support.cc",
-    "src/tracing/trace_writer_base.cc",
-    "src/tracing/tracing.cc",
-    "src/tracing/track_event.cc",
-    "src/tracing/virtual_destructors.cc",
-    "test/end_to_end_integrationtest.cc",
-    "test/fake_producer.cc",
-    "test/task_runner_thread.cc",
-    "test/task_runner_thread_delegates.cc",
-    "test/test_helper.cc",
+    ":perfetto_src_android_internal_headers",
+    ":perfetto_src_android_internal_lazy_library_loader",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_test_support",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
+    ":perfetto_src_profiling_memory_client",
+    ":perfetto_src_profiling_memory_daemon",
+    ":perfetto_src_profiling_memory_end_to_end_tests",
+    ":perfetto_src_profiling_memory_proc_utils",
+    ":perfetto_src_profiling_memory_ring_buffer",
+    ":perfetto_src_profiling_memory_scoped_spinlock",
+    ":perfetto_src_profiling_memory_wire_protocol",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_traced_probes_android_log_android_log",
+    ":perfetto_src_traced_probes_data_source",
+    ":perfetto_src_traced_probes_filesystem_filesystem",
+    ":perfetto_src_traced_probes_ftrace_format_parser",
+    ":perfetto_src_traced_probes_ftrace_ftrace",
+    ":perfetto_src_traced_probes_ftrace_integrationtests",
+    ":perfetto_src_traced_probes_ftrace_test_support",
+    ":perfetto_src_traced_probes_metatrace_metatrace",
+    ":perfetto_src_traced_probes_packages_list_packages_list",
+    ":perfetto_src_traced_probes_power_power",
+    ":perfetto_src_traced_probes_probes_src",
+    ":perfetto_src_traced_probes_ps_ps",
+    ":perfetto_src_traced_probes_sys_stats_sys_stats",
+    ":perfetto_src_tracing_client_api",
+    ":perfetto_src_tracing_client_api_integrationtests",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_platform_posix",
+    ":perfetto_src_tracing_test_api_test_support",
+    ":perfetto_src_tracing_tracing",
+    ":perfetto_test_end_to_end_integrationtests",
+    ":perfetto_test_task_runner_thread",
+    ":perfetto_test_task_runner_thread_delegates",
+    ":perfetto_test_test_helper",
   ],
   shared_libs: [
     "libbase",
@@ -1186,7 +963,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/common:lite_gen
+// GN: //protos/perfetto/common:lite
 genrule {
   name: "perfetto_protos_perfetto_common_lite_gen",
   srcs: [
@@ -1204,7 +981,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pb.cc",
     "external/perfetto/protos/perfetto/common/commit_data_request.pb.cc",
@@ -1219,7 +996,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/common:lite_gen
+// GN: //protos/perfetto/common:lite
 genrule {
   name: "perfetto_protos_perfetto_common_lite_gen_headers",
   srcs: [
@@ -1237,7 +1014,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pb.h",
     "external/perfetto/protos/perfetto/common/commit_data_request.pb.h",
@@ -1256,7 +1033,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/common:zero_gen
+// GN: //protos/perfetto/common:zero
 genrule {
   name: "perfetto_protos_perfetto_common_zero_gen",
   srcs: [
@@ -1273,9 +1050,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.cc",
     "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.cc",
@@ -1290,7 +1067,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/common:zero_gen
+// GN: //protos/perfetto/common:zero
 genrule {
   name: "perfetto_protos_perfetto_common_zero_gen_headers",
   srcs: [
@@ -1307,9 +1084,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.h",
     "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.h",
@@ -1328,7 +1105,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/android:lite_gen
+// GN: //protos/perfetto/config/android:lite
 genrule {
   name: "perfetto_protos_perfetto_config_android_lite_gen",
   srcs: [
@@ -1338,14 +1115,14 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/android/android_log_config.pb.cc",
     "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/android:lite_gen
+// GN: //protos/perfetto/config/android:lite
 genrule {
   name: "perfetto_protos_perfetto_config_android_lite_gen_headers",
   srcs: [
@@ -1355,7 +1132,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/android/android_log_config.pb.h",
     "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.h",
@@ -1366,7 +1143,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/android:zero_gen
+// GN: //protos/perfetto/config/android:zero
 genrule {
   name: "perfetto_protos_perfetto_config_android_zero_gen",
   srcs: [
@@ -1375,16 +1152,16 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/android/android_log_config.pbzero.cc",
     "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/android:zero_gen
+// GN: //protos/perfetto/config/android:zero
 genrule {
   name: "perfetto_protos_perfetto_config_android_zero_gen_headers",
   srcs: [
@@ -1393,9 +1170,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/android/android_log_config.pbzero.h",
     "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.h",
@@ -1406,7 +1183,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/ftrace:lite_gen
+// GN: //protos/perfetto/config/ftrace:lite
 genrule {
   name: "perfetto_protos_perfetto_config_ftrace_lite_gen",
   srcs: [
@@ -1415,13 +1192,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/ftrace:lite_gen
+// GN: //protos/perfetto/config/ftrace:lite
 genrule {
   name: "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
   srcs: [
@@ -1430,7 +1207,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.h",
   ],
@@ -1440,7 +1217,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/ftrace:zero_gen
+// GN: //protos/perfetto/config/ftrace:zero
 genrule {
   name: "perfetto_protos_perfetto_config_ftrace_zero_gen",
   srcs: [
@@ -1448,15 +1225,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/ftrace:zero_gen
+// GN: //protos/perfetto/config/ftrace:zero
 genrule {
   name: "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
   srcs: [
@@ -1464,9 +1241,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.h",
   ],
@@ -1476,7 +1253,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/gpu:lite_gen
+// GN: //protos/perfetto/config/gpu:lite
 genrule {
   name: "perfetto_protos_perfetto_config_gpu_lite_gen",
   srcs: [
@@ -1485,13 +1262,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/gpu:lite_gen
+// GN: //protos/perfetto/config/gpu:lite
 genrule {
   name: "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
   srcs: [
@@ -1500,7 +1277,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.h",
   ],
@@ -1510,7 +1287,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/gpu:zero_gen
+// GN: //protos/perfetto/config/gpu:zero
 genrule {
   name: "perfetto_protos_perfetto_config_gpu_zero_gen",
   srcs: [
@@ -1518,15 +1295,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/gpu:zero_gen
+// GN: //protos/perfetto/config/gpu:zero
 genrule {
   name: "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
   srcs: [
@@ -1534,9 +1311,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.h",
   ],
@@ -1546,7 +1323,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/inode_file:lite_gen
+// GN: //protos/perfetto/config/inode_file:lite
 genrule {
   name: "perfetto_protos_perfetto_config_inode_file_lite_gen",
   srcs: [
@@ -1555,13 +1332,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/inode_file:lite_gen
+// GN: //protos/perfetto/config/inode_file:lite
 genrule {
   name: "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
   srcs: [
@@ -1570,7 +1347,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.h",
   ],
@@ -1580,7 +1357,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/inode_file:zero_gen
+// GN: //protos/perfetto/config/inode_file:zero
 genrule {
   name: "perfetto_protos_perfetto_config_inode_file_zero_gen",
   srcs: [
@@ -1588,15 +1365,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/inode_file:zero_gen
+// GN: //protos/perfetto/config/inode_file:zero
 genrule {
   name: "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
   srcs: [
@@ -1604,9 +1381,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.h",
   ],
@@ -1616,7 +1393,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config:lite_gen
+// GN: //protos/perfetto/config:lite
 genrule {
   name: "perfetto_protos_perfetto_config_lite_gen",
   srcs: [
@@ -1628,7 +1405,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.cc",
     "external/perfetto/protos/perfetto/config/data_source_config.pb.cc",
@@ -1637,7 +1414,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config:lite_gen
+// GN: //protos/perfetto/config:lite
 genrule {
   name: "perfetto_protos_perfetto_config_lite_gen_headers",
   srcs: [
@@ -1649,7 +1426,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.h",
     "external/perfetto/protos/perfetto/config/data_source_config.pb.h",
@@ -1662,7 +1439,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/power:lite_gen
+// GN: //protos/perfetto/config/power:lite
 genrule {
   name: "perfetto_protos_perfetto_config_power_lite_gen",
   srcs: [
@@ -1671,13 +1448,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/power/android_power_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/power:lite_gen
+// GN: //protos/perfetto/config/power:lite
 genrule {
   name: "perfetto_protos_perfetto_config_power_lite_gen_headers",
   srcs: [
@@ -1686,7 +1463,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/power/android_power_config.pb.h",
   ],
@@ -1696,7 +1473,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/power:zero_gen
+// GN: //protos/perfetto/config/power:zero
 genrule {
   name: "perfetto_protos_perfetto_config_power_zero_gen",
   srcs: [
@@ -1704,15 +1481,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/power:zero_gen
+// GN: //protos/perfetto/config/power:zero
 genrule {
   name: "perfetto_protos_perfetto_config_power_zero_gen_headers",
   srcs: [
@@ -1720,9 +1497,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.h",
   ],
@@ -1732,7 +1509,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/process_stats:lite_gen
+// GN: //protos/perfetto/config/process_stats:lite
 genrule {
   name: "perfetto_protos_perfetto_config_process_stats_lite_gen",
   srcs: [
@@ -1741,13 +1518,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/process_stats:lite_gen
+// GN: //protos/perfetto/config/process_stats:lite
 genrule {
   name: "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
   srcs: [
@@ -1756,7 +1533,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.h",
   ],
@@ -1766,7 +1543,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/process_stats:zero_gen
+// GN: //protos/perfetto/config/process_stats:zero
 genrule {
   name: "perfetto_protos_perfetto_config_process_stats_zero_gen",
   srcs: [
@@ -1774,15 +1551,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/process_stats:zero_gen
+// GN: //protos/perfetto/config/process_stats:zero
 genrule {
   name: "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
   srcs: [
@@ -1790,9 +1567,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.h",
   ],
@@ -1802,7 +1579,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/profiling:lite_gen
+// GN: //protos/perfetto/config/profiling:lite
 genrule {
   name: "perfetto_protos_perfetto_config_profiling_lite_gen",
   srcs: [
@@ -1812,14 +1589,14 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pb.cc",
     "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/profiling:lite_gen
+// GN: //protos/perfetto/config/profiling:lite
 genrule {
   name: "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
   srcs: [
@@ -1829,7 +1606,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pb.h",
     "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pb.h",
@@ -1840,7 +1617,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/profiling:zero_gen
+// GN: //protos/perfetto/config/profiling:zero
 genrule {
   name: "perfetto_protos_perfetto_config_profiling_zero_gen",
   srcs: [
@@ -1849,16 +1626,16 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pbzero.cc",
     "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/profiling:zero_gen
+// GN: //protos/perfetto/config/profiling:zero
 genrule {
   name: "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
   srcs: [
@@ -1867,9 +1644,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pbzero.h",
     "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pbzero.h",
@@ -1880,7 +1657,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/sys_stats:lite_gen
+// GN: //protos/perfetto/config/sys_stats:lite
 genrule {
   name: "perfetto_protos_perfetto_config_sys_stats_lite_gen",
   srcs: [
@@ -1889,13 +1666,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/sys_stats:lite_gen
+// GN: //protos/perfetto/config/sys_stats:lite
 genrule {
   name: "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
   srcs: [
@@ -1904,7 +1681,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pb.h",
   ],
@@ -1914,7 +1691,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config/sys_stats:zero_gen
+// GN: //protos/perfetto/config/sys_stats:zero
 genrule {
   name: "perfetto_protos_perfetto_config_sys_stats_zero_gen",
   srcs: [
@@ -1922,15 +1699,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/config/sys_stats:zero_gen
+// GN: //protos/perfetto/config/sys_stats:zero
 genrule {
   name: "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
   srcs: [
@@ -1938,9 +1715,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pbzero.h",
   ],
@@ -1950,7 +1727,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config:zero_gen
+// GN: //protos/perfetto/config:zero
 genrule {
   name: "perfetto_protos_perfetto_config_zero_gen",
   srcs: [
@@ -1961,9 +1738,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.cc",
     "external/perfetto/protos/perfetto/config/data_source_config.pbzero.cc",
@@ -1972,7 +1749,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/config:zero_gen
+// GN: //protos/perfetto/config:zero
 genrule {
   name: "perfetto_protos_perfetto_config_zero_gen_headers",
   srcs: [
@@ -1983,9 +1760,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.h",
     "external/perfetto/protos/perfetto/config/data_source_config.pbzero.h",
@@ -1998,7 +1775,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/ipc:ipc_gen
+// GN: //protos/perfetto/ipc:ipc
 genrule {
   name: "perfetto_protos_perfetto_ipc_ipc_gen",
   srcs: [
@@ -2007,9 +1784,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "ipc_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/ipc/consumer_port.ipc.cc",
     "external/perfetto/protos/perfetto/ipc/consumer_port.pb.cc",
@@ -2018,7 +1795,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/ipc:ipc_gen
+// GN: //protos/perfetto/ipc:ipc
 genrule {
   name: "perfetto_protos_perfetto_ipc_ipc_gen_headers",
   srcs: [
@@ -2027,9 +1804,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "ipc_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/ipc/consumer_port.ipc.h",
     "external/perfetto/protos/perfetto/ipc/consumer_port.pb.h",
@@ -2042,7 +1819,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/ipc:wire_protocol_gen
+// GN: //protos/perfetto/ipc:wire_protocol
 genrule {
   name: "perfetto_protos_perfetto_ipc_wire_protocol_gen",
   srcs: [
@@ -2051,13 +1828,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/ipc/wire_protocol.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/ipc:wire_protocol_gen
+// GN: //protos/perfetto/ipc:wire_protocol
 genrule {
   name: "perfetto_protos_perfetto_ipc_wire_protocol_gen_headers",
   srcs: [
@@ -2066,7 +1843,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/ipc/wire_protocol.pb.h",
   ],
@@ -2076,7 +1853,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/metrics/android:zero_gen
+// GN: //protos/perfetto/metrics/android:zero
 genrule {
   name: "perfetto_protos_perfetto_metrics_android_zero_gen",
   srcs: [
@@ -2095,9 +1872,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/metrics/android/batt_metric.pbzero.cc",
     "external/perfetto/protos/perfetto/metrics/android/cpu_metric.pbzero.cc",
@@ -2114,7 +1891,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/metrics/android:zero_gen
+// GN: //protos/perfetto/metrics/android:zero
 genrule {
   name: "perfetto_protos_perfetto_metrics_android_zero_gen_headers",
   srcs: [
@@ -2133,9 +1910,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/metrics/android/batt_metric.pbzero.h",
     "external/perfetto/protos/perfetto/metrics/android/cpu_metric.pbzero.h",
@@ -2156,7 +1933,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/metrics:zero_gen
+// GN: //protos/perfetto/metrics:zero
 genrule {
   name: "perfetto_protos_perfetto_metrics_zero_gen",
   srcs: [
@@ -2164,15 +1941,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/metrics/metrics.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/metrics:zero_gen
+// GN: //protos/perfetto/metrics:zero
 genrule {
   name: "perfetto_protos_perfetto_metrics_zero_gen_headers",
   srcs: [
@@ -2180,9 +1957,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/metrics/metrics.pbzero.h",
   ],
@@ -2192,7 +1969,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/android:lite_gen
+// GN: //protos/perfetto/trace/android:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_android_lite_gen",
   srcs: [
@@ -2203,7 +1980,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pb.cc",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.cc",
@@ -2211,7 +1988,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/android:lite_gen
+// GN: //protos/perfetto/trace/android:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_android_lite_gen_headers",
   srcs: [
@@ -2222,7 +1999,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pb.h",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.h",
@@ -2234,7 +2011,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/android:zero_gen
+// GN: //protos/perfetto/trace/android:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_android_zero_gen",
   srcs: [
@@ -2244,9 +2021,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.cc",
@@ -2254,7 +2031,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/android:zero_gen
+// GN: //protos/perfetto/trace/android:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_android_zero_gen_headers",
   srcs: [
@@ -2264,9 +2041,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.h",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.h",
@@ -2278,7 +2055,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/chrome:lite_gen
+// GN: //protos/perfetto/trace/chrome:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_chrome_lite_gen",
   srcs: [
@@ -2289,7 +2066,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pb.cc",
     "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pb.cc",
@@ -2297,7 +2074,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/chrome:lite_gen
+// GN: //protos/perfetto/trace/chrome:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
   srcs: [
@@ -2308,7 +2085,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pb.h",
     "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pb.h",
@@ -2320,7 +2097,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/chrome:zero_gen
+// GN: //protos/perfetto/trace/chrome:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_chrome_zero_gen",
   srcs: [
@@ -2330,9 +2107,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pbzero.cc",
@@ -2340,7 +2117,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/chrome:zero_gen
+// GN: //protos/perfetto/trace/chrome:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
   srcs: [
@@ -2350,9 +2127,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pbzero.h",
     "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pbzero.h",
@@ -2364,7 +2141,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/filesystem:lite_gen
+// GN: //protos/perfetto/trace/filesystem:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_filesystem_lite_gen",
   srcs: [
@@ -2373,13 +2150,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/filesystem:lite_gen
+// GN: //protos/perfetto/trace/filesystem:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
   srcs: [
@@ -2388,7 +2165,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pb.h",
   ],
@@ -2398,7 +2175,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/filesystem:zero_gen
+// GN: //protos/perfetto/trace/filesystem:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_filesystem_zero_gen",
   srcs: [
@@ -2406,15 +2183,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/filesystem:zero_gen
+// GN: //protos/perfetto/trace/filesystem:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
   srcs: [
@@ -2422,9 +2199,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pbzero.h",
   ],
@@ -2434,7 +2211,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/ftrace:lite_gen
+// GN: //protos/perfetto/trace/ftrace:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_ftrace_lite_gen",
   srcs: [
@@ -2475,7 +2252,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/block.pb.cc",
@@ -2513,7 +2290,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/ftrace:lite_gen
+// GN: //protos/perfetto/trace/ftrace:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
   srcs: [
@@ -2554,7 +2331,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.h",
     "external/perfetto/protos/perfetto/trace/ftrace/block.pb.h",
@@ -2596,7 +2373,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/ftrace:zero_gen
+// GN: //protos/perfetto/trace/ftrace:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_ftrace_zero_gen",
   srcs: [
@@ -2636,9 +2413,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.cc",
@@ -2676,7 +2453,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/ftrace:zero_gen
+// GN: //protos/perfetto/trace/ftrace:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
   srcs: [
@@ -2716,9 +2493,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.h",
@@ -2760,7 +2537,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/gpu:lite_gen
+// GN: //protos/perfetto/trace/gpu:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_gpu_lite_gen",
   srcs: [
@@ -2771,7 +2548,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.cc",
     "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.cc",
@@ -2779,7 +2556,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/gpu:lite_gen
+// GN: //protos/perfetto/trace/gpu:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
   srcs: [
@@ -2790,7 +2567,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.h",
     "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.h",
@@ -2802,7 +2579,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/gpu:zero_gen
+// GN: //protos/perfetto/trace/gpu:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_gpu_zero_gen",
   srcs: [
@@ -2812,9 +2589,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.cc",
@@ -2822,7 +2599,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/gpu:zero_gen
+// GN: //protos/perfetto/trace/gpu:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
   srcs: [
@@ -2832,9 +2609,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.h",
     "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.h",
@@ -2846,7 +2623,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/interned_data:lite_gen
+// GN: //protos/perfetto/trace/interned_data:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_interned_data_lite_gen",
   srcs: [
@@ -2855,13 +2632,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/interned_data:lite_gen
+// GN: //protos/perfetto/trace/interned_data:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
   srcs: [
@@ -2870,7 +2647,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pb.h",
   ],
@@ -2880,7 +2657,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/interned_data:zero_gen
+// GN: //protos/perfetto/trace/interned_data:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_interned_data_zero_gen",
   srcs: [
@@ -2888,15 +2665,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/interned_data:zero_gen
+// GN: //protos/perfetto/trace/interned_data:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
   srcs: [
@@ -2904,9 +2681,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.h",
   ],
@@ -2916,7 +2693,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:minimal_lite_gen
+// GN: //protos/perfetto/trace:minimal_lite
 genrule {
   name: "perfetto_protos_perfetto_trace_minimal_lite_gen",
   srcs: [
@@ -2927,7 +2704,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/clock_snapshot.pb.cc",
     "external/perfetto/protos/perfetto/trace/system_info.pb.cc",
@@ -2935,7 +2712,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:minimal_lite_gen
+// GN: //protos/perfetto/trace:minimal_lite
 genrule {
   name: "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
   srcs: [
@@ -2946,7 +2723,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/clock_snapshot.pb.h",
     "external/perfetto/protos/perfetto/trace/system_info.pb.h",
@@ -2958,7 +2735,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:minimal_zero_gen
+// GN: //protos/perfetto/trace:minimal_zero
 genrule {
   name: "perfetto_protos_perfetto_trace_minimal_zero_gen",
   srcs: [
@@ -2968,9 +2745,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/system_info.pbzero.cc",
@@ -2978,7 +2755,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:minimal_zero_gen
+// GN: //protos/perfetto/trace:minimal_zero
 genrule {
   name: "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
   srcs: [
@@ -2988,9 +2765,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.h",
     "external/perfetto/protos/perfetto/trace/system_info.pbzero.h",
@@ -3002,7 +2779,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:non_minimal_lite_gen
+// GN: //protos/perfetto/trace:non_minimal_lite
 genrule {
   name: "perfetto_protos_perfetto_trace_non_minimal_lite_gen",
   srcs: [
@@ -3014,7 +2791,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/test_event.pb.cc",
     "external/perfetto/protos/perfetto/trace/trace.pb.cc",
@@ -3023,7 +2800,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:non_minimal_lite_gen
+// GN: //protos/perfetto/trace:non_minimal_lite
 genrule {
   name: "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
   srcs: [
@@ -3035,7 +2812,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/test_event.pb.h",
     "external/perfetto/protos/perfetto/trace/trace.pb.h",
@@ -3048,7 +2825,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:non_minimal_zero_gen
+// GN: //protos/perfetto/trace:non_minimal_zero
 genrule {
   name: "perfetto_protos_perfetto_trace_non_minimal_zero_gen",
   srcs: [
@@ -3059,9 +2836,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/test_event.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/trace.pbzero.cc",
@@ -3070,7 +2847,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:non_minimal_zero_gen
+// GN: //protos/perfetto/trace:non_minimal_zero
 genrule {
   name: "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
   srcs: [
@@ -3081,9 +2858,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/test_event.pbzero.h",
     "external/perfetto/protos/perfetto/trace/trace.pbzero.h",
@@ -3096,7 +2873,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/perfetto:lite_gen
+// GN: //protos/perfetto/trace/perfetto:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_perfetto_lite_gen",
   srcs: [
@@ -3105,13 +2882,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/perfetto:lite_gen
+// GN: //protos/perfetto/trace/perfetto:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
   srcs: [
@@ -3120,7 +2897,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pb.h",
   ],
@@ -3130,7 +2907,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/perfetto:zero_gen
+// GN: //protos/perfetto/trace/perfetto:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_perfetto_zero_gen",
   srcs: [
@@ -3138,15 +2915,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/perfetto:zero_gen
+// GN: //protos/perfetto/trace/perfetto:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
   srcs: [
@@ -3154,9 +2931,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.h",
   ],
@@ -3166,7 +2943,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/power:lite_gen
+// GN: //protos/perfetto/trace/power:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_power_lite_gen",
   srcs: [
@@ -3176,14 +2953,14 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/power/battery_counters.pb.cc",
     "external/perfetto/protos/perfetto/trace/power/power_rails.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/power:lite_gen
+// GN: //protos/perfetto/trace/power:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_power_lite_gen_headers",
   srcs: [
@@ -3193,7 +2970,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/power/battery_counters.pb.h",
     "external/perfetto/protos/perfetto/trace/power/power_rails.pb.h",
@@ -3204,7 +2981,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/power:zero_gen
+// GN: //protos/perfetto/trace/power:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_power_zero_gen",
   srcs: [
@@ -3213,16 +2990,16 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/power/battery_counters.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/power/power_rails.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/power:zero_gen
+// GN: //protos/perfetto/trace/power:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_power_zero_gen_headers",
   srcs: [
@@ -3231,9 +3008,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/power/battery_counters.pbzero.h",
     "external/perfetto/protos/perfetto/trace/power/power_rails.pbzero.h",
@@ -3244,7 +3021,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace_processor:metrics_impl_zero_gen
+// GN: //protos/perfetto/trace_processor:metrics_impl_zero
 genrule {
   name: "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
   srcs: [
@@ -3252,15 +3029,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace_processor/metrics_impl.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace_processor:metrics_impl_zero_gen
+// GN: //protos/perfetto/trace_processor:metrics_impl_zero
 genrule {
   name: "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
   srcs: [
@@ -3268,9 +3045,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace_processor/metrics_impl.pbzero.h",
   ],
@@ -3280,7 +3057,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/profiling:lite_gen
+// GN: //protos/perfetto/trace/profiling:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_profiling_lite_gen",
   srcs: [
@@ -3291,7 +3068,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.cc",
     "external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.cc",
@@ -3299,7 +3076,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/profiling:lite_gen
+// GN: //protos/perfetto/trace/profiling:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
   srcs: [
@@ -3310,7 +3087,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.h",
     "external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.h",
@@ -3322,7 +3099,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/profiling:zero_gen
+// GN: //protos/perfetto/trace/profiling:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_profiling_zero_gen",
   srcs: [
@@ -3332,9 +3109,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.cc",
@@ -3342,7 +3119,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/profiling:zero_gen
+// GN: //protos/perfetto/trace/profiling:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
   srcs: [
@@ -3352,9 +3129,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.h",
     "external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.h",
@@ -3366,7 +3143,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/ps:lite_gen
+// GN: //protos/perfetto/trace/ps:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_ps_lite_gen",
   srcs: [
@@ -3376,14 +3153,14 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ps/process_stats.pb.cc",
     "external/perfetto/protos/perfetto/trace/ps/process_tree.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/ps:lite_gen
+// GN: //protos/perfetto/trace/ps:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
   srcs: [
@@ -3393,7 +3170,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ps/process_stats.pb.h",
     "external/perfetto/protos/perfetto/trace/ps/process_tree.pb.h",
@@ -3404,7 +3181,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/ps:zero_gen
+// GN: //protos/perfetto/trace/ps:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_ps_zero_gen",
   srcs: [
@@ -3413,16 +3190,16 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ps/process_stats.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/ps/process_tree.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/ps:zero_gen
+// GN: //protos/perfetto/trace/ps:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
   srcs: [
@@ -3431,9 +3208,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/ps/process_stats.pbzero.h",
     "external/perfetto/protos/perfetto/trace/ps/process_tree.pbzero.h",
@@ -3444,7 +3221,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/sys_stats:lite_gen
+// GN: //protos/perfetto/trace/sys_stats:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_sys_stats_lite_gen",
   srcs: [
@@ -3453,13 +3230,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/sys_stats:lite_gen
+// GN: //protos/perfetto/trace/sys_stats:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
   srcs: [
@@ -3468,7 +3245,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pb.h",
   ],
@@ -3478,7 +3255,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/sys_stats:zero_gen
+// GN: //protos/perfetto/trace/sys_stats:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_sys_stats_zero_gen",
   srcs: [
@@ -3486,15 +3263,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pbzero.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace/sys_stats:zero_gen
+// GN: //protos/perfetto/trace/sys_stats:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
   srcs: [
@@ -3502,9 +3279,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pbzero.h",
   ],
@@ -3514,7 +3291,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/track_event:lite_gen
+// GN: //protos/perfetto/trace/track_event:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_track_event_lite_gen",
   srcs: [
@@ -3530,7 +3307,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pb.cc",
     "external/perfetto/protos/perfetto/trace/track_event/log_message.pb.cc",
@@ -3543,7 +3320,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/track_event:lite_gen
+// GN: //protos/perfetto/trace/track_event:lite
 genrule {
   name: "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
   srcs: [
@@ -3559,7 +3336,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pb.h",
     "external/perfetto/protos/perfetto/trace/track_event/log_message.pb.h",
@@ -3576,7 +3353,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/track_event:zero_gen
+// GN: //protos/perfetto/trace/track_event:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_track_event_zero_gen",
   srcs: [
@@ -3591,9 +3368,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/track_event/log_message.pbzero.cc",
@@ -3606,7 +3383,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace/track_event:zero_gen
+// GN: //protos/perfetto/trace/track_event:zero
 genrule {
   name: "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
   srcs: [
@@ -3621,9 +3398,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pbzero.h",
     "external/perfetto/protos/perfetto/trace/track_event/log_message.pbzero.h",
@@ -3640,7 +3417,7 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:trusted_lite_gen
+// GN: //protos/perfetto/trace:trusted_lite
 genrule {
   name: "perfetto_protos_perfetto_trace_trusted_lite_gen",
   srcs: [
@@ -3649,13 +3426,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/trusted_packet.pb.cc",
   ],
 }
 
-// GN target: //protos/perfetto/trace:trusted_lite_gen
+// GN: //protos/perfetto/trace:trusted_lite
 genrule {
   name: "perfetto_protos_perfetto_trace_trusted_lite_gen_headers",
   srcs: [
@@ -3664,7 +3441,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/perfetto/trace/trusted_packet.pb.h",
   ],
@@ -3674,7 +3451,7 @@
   ],
 }
 
-// GN target: //protos/third_party/pprof:lite_gen
+// GN: //protos/third_party/pprof:lite
 genrule {
   name: "perfetto_protos_third_party_pprof_lite_gen",
   srcs: [
@@ -3683,13 +3460,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/third_party/pprof/profile.pb.cc",
   ],
 }
 
-// GN target: //protos/third_party/pprof:lite_gen
+// GN: //protos/third_party/pprof:lite
 genrule {
   name: "perfetto_protos_third_party_pprof_lite_gen_headers",
   srcs: [
@@ -3698,7 +3475,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/protos/third_party/pprof/profile.pb.h",
   ],
@@ -3708,9 +3485,34 @@
   ],
 }
 
-// GN target: //src/ipc/protoc_plugin:ipc_plugin(//gn/standalone/toolchain:gcc_like_host)
-cc_binary_host {
-  name: "perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_",
+// GN: //src/android_internal:android_internal
+filegroup {
+  name: "perfetto_src_android_internal_android_internal",
+  srcs: [
+    "src/android_internal/atrace_hal.cc",
+    "src/android_internal/dropbox_service.cc",
+    "src/android_internal/health_hal.cc",
+    "src/android_internal/incident_service.cc",
+    "src/android_internal/power_stats_hal.cc",
+  ],
+}
+
+// GN: //src/android_internal:headers
+filegroup {
+  name: "perfetto_src_android_internal_headers",
+}
+
+// GN: //src/android_internal:lazy_library_loader
+filegroup {
+  name: "perfetto_src_android_internal_lazy_library_loader",
+  srcs: [
+    "src/android_internal/lazy_library_loader.cc",
+  ],
+}
+
+// GN: //src/base:base
+filegroup {
+  name: "perfetto_src_base_base",
   srcs: [
     "src/base/event_fd.cc",
     "src/base/file_utils.cc",
@@ -3729,21 +3531,69 @@
     "src/base/virtual_destructors.cc",
     "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
-    "src/ipc/protoc_plugin/ipc_plugin.cc",
-  ],
-  shared_libs: [
-    "libprotoc",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
   ],
 }
 
-// GN target: //src/ipc:test_messages_gen
+// GN: //src/base:test_support
+filegroup {
+  name: "perfetto_src_base_test_support",
+  srcs: [
+    "src/base/test/test_task_runner.cc",
+    "src/base/test/utils.cc",
+    "src/base/test/vm_test_utils.cc",
+  ],
+}
+
+// GN: //src/base:unittests
+filegroup {
+  name: "perfetto_src_base_unittests",
+  srcs: [
+    "src/base/circular_queue_unittest.cc",
+    "src/base/copyable_ptr_unittest.cc",
+    "src/base/metatrace_unittest.cc",
+    "src/base/no_destructor_unittest.cc",
+    "src/base/optional_unittest.cc",
+    "src/base/paged_memory_unittest.cc",
+    "src/base/scoped_file_unittest.cc",
+    "src/base/string_splitter_unittest.cc",
+    "src/base/string_utils_unittest.cc",
+    "src/base/string_view_unittest.cc",
+    "src/base/string_writer_unittest.cc",
+    "src/base/task_runner_unittest.cc",
+    "src/base/temp_file_unittest.cc",
+    "src/base/thread_checker_unittest.cc",
+    "src/base/thread_task_runner_unittest.cc",
+    "src/base/time_unittest.cc",
+    "src/base/unix_socket_unittest.cc",
+    "src/base/utils_unittest.cc",
+    "src/base/uuid_unittest.cc",
+    "src/base/watchdog_unittest.cc",
+    "src/base/weak_ptr_unittest.cc",
+  ],
+}
+
+// GN: //src/base:unix_socket
+filegroup {
+  name: "perfetto_src_base_unix_socket",
+  srcs: [
+    "src/base/unix_socket.cc",
+  ],
+}
+
+// GN: //src/ipc:ipc
+filegroup {
+  name: "perfetto_src_ipc_ipc",
+  srcs: [
+    "src/ipc/buffered_frame_deserializer.cc",
+    "src/ipc/client_impl.cc",
+    "src/ipc/deferred.cc",
+    "src/ipc/host_impl.cc",
+    "src/ipc/service_proxy.cc",
+    "src/ipc/virtual_destructors.cc",
+  ],
+}
+
+// GN: //src/ipc:test_messages
 genrule {
   name: "perfetto_src_ipc_test_messages_gen",
   srcs: [
@@ -3753,9 +3603,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "ipc_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/src/ipc/test/client_unittest_messages.ipc.cc",
     "external/perfetto/src/ipc/test/client_unittest_messages.pb.cc",
@@ -3766,7 +3616,7 @@
   ],
 }
 
-// GN target: //src/ipc:test_messages_gen
+// GN: //src/ipc:test_messages
 genrule {
   name: "perfetto_src_ipc_test_messages_gen_headers",
   srcs: [
@@ -3776,9 +3626,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "ipc_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_ipc_protoc_plugin_ipc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/src/ipc/test/client_unittest_messages.ipc.h",
     "external/perfetto/src/ipc/test/client_unittest_messages.pb.h",
@@ -3793,7 +3643,32 @@
   ],
 }
 
-// GN target: //src/perfetto_cmd:protos_gen
+// GN: //src/ipc:unittests
+filegroup {
+  name: "perfetto_src_ipc_unittests",
+  srcs: [
+    "src/ipc/buffered_frame_deserializer_unittest.cc",
+    "src/ipc/client_impl_unittest.cc",
+    "src/ipc/deferred_unittest.cc",
+    "src/ipc/host_impl_unittest.cc",
+    "src/ipc/test/ipc_integrationtest.cc",
+  ],
+}
+
+// GN: //src/perfetto_cmd:perfetto_cmd
+filegroup {
+  name: "perfetto_src_perfetto_cmd_perfetto_cmd",
+  srcs: [
+    "src/perfetto_cmd/config.cc",
+    "src/perfetto_cmd/packet_writer.cc",
+    "src/perfetto_cmd/pbtxt_to_pb.cc",
+    "src/perfetto_cmd/perfetto_cmd.cc",
+    "src/perfetto_cmd/perfetto_cmd_android.cc",
+    "src/perfetto_cmd/rate_limiter.cc",
+  ],
+}
+
+// GN: //src/perfetto_cmd:protos
 genrule {
   name: "perfetto_src_perfetto_cmd_protos_gen",
   srcs: [
@@ -3802,13 +3677,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.pb.cc",
   ],
 }
 
-// GN target: //src/perfetto_cmd:protos_gen
+// GN: //src/perfetto_cmd:protos
 genrule {
   name: "perfetto_src_perfetto_cmd_protos_gen_headers",
   srcs: [
@@ -3817,7 +3692,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.pb.h",
   ],
@@ -3827,42 +3702,145 @@
   ],
 }
 
-// GN target: //src/protozero/protoc_plugin:protozero_plugin(//gn/standalone/toolchain:gcc_like_host)
-cc_binary_host {
-  name: "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+// GN: //src/perfetto_cmd:trigger_perfetto_cmd
+filegroup {
+  name: "perfetto_src_perfetto_cmd_trigger_perfetto_cmd",
   srcs: [
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/protozero/protoc_plugin/protozero_plugin.cc",
-  ],
-  shared_libs: [
-    "libprotoc",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    "src/perfetto_cmd/trigger_perfetto.cc",
   ],
 }
 
-// GN target: //src/protozero:testing_messages_lite_gen
+// GN: //src/perfetto_cmd:trigger_producer
+filegroup {
+  name: "perfetto_src_perfetto_cmd_trigger_producer",
+  srcs: [
+    "src/perfetto_cmd/trigger_producer.cc",
+  ],
+}
+
+// GN: //src/perfetto_cmd:unittests
+filegroup {
+  name: "perfetto_src_perfetto_cmd_unittests",
+  srcs: [
+    "src/perfetto_cmd/config_unittest.cc",
+    "src/perfetto_cmd/packet_writer_unittest.cc",
+    "src/perfetto_cmd/pbtxt_to_pb_unittest.cc",
+    "src/perfetto_cmd/rate_limiter_unittest.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:client
+filegroup {
+  name: "perfetto_src_profiling_memory_client",
+  srcs: [
+    "src/profiling/memory/client.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:daemon
+filegroup {
+  name: "perfetto_src_profiling_memory_daemon",
+  srcs: [
+    "src/profiling/memory/bookkeeping.cc",
+    "src/profiling/memory/bookkeeping_dump.cc",
+    "src/profiling/memory/heapprofd_config.cc",
+    "src/profiling/memory/heapprofd_producer.cc",
+    "src/profiling/memory/java_hprof_config.cc",
+    "src/profiling/memory/java_hprof_producer.cc",
+    "src/profiling/memory/page_idle_checker.cc",
+    "src/profiling/memory/system_property.cc",
+    "src/profiling/memory/unwinding.cc",
+    "src/profiling/memory/utils.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:end_to_end_tests
+filegroup {
+  name: "perfetto_src_profiling_memory_end_to_end_tests",
+  srcs: [
+    "src/profiling/memory/heapprofd_end_to_end_test.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:malloc_hooks
+filegroup {
+  name: "perfetto_src_profiling_memory_malloc_hooks",
+  srcs: [
+    "src/profiling/memory/malloc_hooks.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:proc_utils
+filegroup {
+  name: "perfetto_src_profiling_memory_proc_utils",
+  srcs: [
+    "src/profiling/memory/proc_utils.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:ring_buffer
+filegroup {
+  name: "perfetto_src_profiling_memory_ring_buffer",
+  srcs: [
+    "src/profiling/memory/shared_ring_buffer.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:ring_buffer_unittests
+filegroup {
+  name: "perfetto_src_profiling_memory_ring_buffer_unittests",
+  srcs: [
+    "src/profiling/memory/shared_ring_buffer_unittest.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:scoped_spinlock
+filegroup {
+  name: "perfetto_src_profiling_memory_scoped_spinlock",
+  srcs: [
+    "src/profiling/memory/scoped_spinlock.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:unittests
+filegroup {
+  name: "perfetto_src_profiling_memory_unittests",
+  srcs: [
+    "src/profiling/memory/bookkeeping_unittest.cc",
+    "src/profiling/memory/client_unittest.cc",
+    "src/profiling/memory/heapprofd_producer_unittest.cc",
+    "src/profiling/memory/interner_unittest.cc",
+    "src/profiling/memory/page_idle_checker_unittest.cc",
+    "src/profiling/memory/proc_utils_unittest.cc",
+    "src/profiling/memory/sampler_unittest.cc",
+    "src/profiling/memory/system_property_unittest.cc",
+    "src/profiling/memory/unwinding_unittest.cc",
+    "src/profiling/memory/wire_protocol_unittest.cc",
+  ],
+}
+
+// GN: //src/profiling/memory:wire_protocol
+filegroup {
+  name: "perfetto_src_profiling_memory_wire_protocol",
+  srcs: [
+    "src/profiling/memory/wire_protocol.cc",
+  ],
+}
+
+// GN: //src/protozero:protozero
+filegroup {
+  name: "perfetto_src_protozero_protozero",
+  srcs: [
+    "src/protozero/message.cc",
+    "src/protozero/message_handle.cc",
+    "src/protozero/proto_decoder.cc",
+    "src/protozero/scattered_heap_buffer.cc",
+    "src/protozero/scattered_stream_null_delegate.cc",
+    "src/protozero/scattered_stream_writer.cc",
+  ],
+}
+
+// GN: //src/protozero:testing_messages_lite
 genrule {
   name: "perfetto_src_protozero_testing_messages_lite_gen",
   srcs: [
@@ -3874,7 +3852,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/src/protozero/test/example_proto/library.pb.cc",
     "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pb.cc",
@@ -3883,7 +3861,7 @@
   ],
 }
 
-// GN target: //src/protozero:testing_messages_lite_gen
+// GN: //src/protozero:testing_messages_lite
 genrule {
   name: "perfetto_src_protozero_testing_messages_lite_gen_headers",
   srcs: [
@@ -3895,7 +3873,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/src/protozero/test/example_proto/library.pb.h",
     "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pb.h",
@@ -3908,7 +3886,7 @@
   ],
 }
 
-// GN target: //src/protozero:testing_messages_zero_gen
+// GN: //src/protozero:testing_messages_zero
 genrule {
   name: "perfetto_src_protozero_testing_messages_zero_gen",
   srcs: [
@@ -3919,9 +3897,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/src/protozero/test/example_proto/library.pbzero.cc",
     "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pbzero.cc",
@@ -3930,7 +3908,7 @@
   ],
 }
 
-// GN target: //src/protozero:testing_messages_zero_gen
+// GN: //src/protozero:testing_messages_zero
 genrule {
   name: "perfetto_src_protozero_testing_messages_zero_gen_headers",
   srcs: [
@@ -3941,9 +3919,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/src/protozero/test/example_proto/library.pbzero.h",
     "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pbzero.h",
@@ -3956,7 +3934,279 @@
   ],
 }
 
-// GN target: //src/traced/probes/ftrace:test_messages_lite_gen
+// GN: //src/protozero:unittests
+filegroup {
+  name: "perfetto_src_protozero_unittests",
+  srcs: [
+    "src/protozero/message_handle_unittest.cc",
+    "src/protozero/message_unittest.cc",
+    "src/protozero/proto_decoder_unittest.cc",
+    "src/protozero/proto_utils_unittest.cc",
+    "src/protozero/scattered_stream_writer_unittest.cc",
+    "src/protozero/test/fake_scattered_buffer.cc",
+    "src/protozero/test/protozero_conformance_unittest.cc",
+  ],
+}
+
+// GN: //src/trace_processor:common
+filegroup {
+  name: "perfetto_src_trace_processor_common",
+  srcs: [
+    "src/trace_processor/string_pool.cc",
+  ],
+}
+
+// GN: //src/trace_processor/db:lib
+filegroup {
+  name: "perfetto_src_trace_processor_db_lib",
+  srcs: [
+    "src/trace_processor/db/bit_vector.cc",
+    "src/trace_processor/db/column.cc",
+    "src/trace_processor/db/row_map.cc",
+    "src/trace_processor/db/table.cc",
+  ],
+}
+
+// GN: //src/trace_processor/db:unittests
+filegroup {
+  name: "perfetto_src_trace_processor_db_unittests",
+  srcs: [
+    "src/trace_processor/db/bit_vector_unittest.cc",
+    "src/trace_processor/db/row_map_unittest.cc",
+    "src/trace_processor/db/sparse_vector_unittest.cc",
+  ],
+}
+
+// GN: //src/trace_processor:lib
+filegroup {
+  name: "perfetto_src_trace_processor_lib",
+  srcs: [
+    "src/trace_processor/android_logs_table.cc",
+    "src/trace_processor/args_table.cc",
+    "src/trace_processor/args_tracker.cc",
+    "src/trace_processor/clock_tracker.cc",
+    "src/trace_processor/counter_definitions_table.cc",
+    "src/trace_processor/counter_values_table.cc",
+    "src/trace_processor/cpu_profile_stack_sample_table.cc",
+    "src/trace_processor/event_tracker.cc",
+    "src/trace_processor/filtered_row_index.cc",
+    "src/trace_processor/forwarding_trace_parser.cc",
+    "src/trace_processor/ftrace_descriptors.cc",
+    "src/trace_processor/ftrace_utils.cc",
+    "src/trace_processor/fuchsia_provider_view.cc",
+    "src/trace_processor/fuchsia_trace_parser.cc",
+    "src/trace_processor/fuchsia_trace_tokenizer.cc",
+    "src/trace_processor/fuchsia_trace_utils.cc",
+    "src/trace_processor/graphics_event_parser.cc",
+    "src/trace_processor/gzip_trace_parser.cc",
+    "src/trace_processor/heap_graph_tracker.cc",
+    "src/trace_processor/heap_profile_allocation_table.cc",
+    "src/trace_processor/heap_profile_tracker.cc",
+    "src/trace_processor/instants_table.cc",
+    "src/trace_processor/metadata_table.cc",
+    "src/trace_processor/process_table.cc",
+    "src/trace_processor/process_tracker.cc",
+    "src/trace_processor/proto_trace_parser.cc",
+    "src/trace_processor/proto_trace_tokenizer.cc",
+    "src/trace_processor/raw_table.cc",
+    "src/trace_processor/row_iterators.cc",
+    "src/trace_processor/sched_slice_table.cc",
+    "src/trace_processor/slice_table.cc",
+    "src/trace_processor/slice_tracker.cc",
+    "src/trace_processor/span_join_operator_table.cc",
+    "src/trace_processor/sql_stats_table.cc",
+    "src/trace_processor/stack_profile_callsite_table.cc",
+    "src/trace_processor/stack_profile_frame_table.cc",
+    "src/trace_processor/stack_profile_mapping_table.cc",
+    "src/trace_processor/stack_profile_tracker.cc",
+    "src/trace_processor/stats_table.cc",
+    "src/trace_processor/storage_columns.cc",
+    "src/trace_processor/storage_schema.cc",
+    "src/trace_processor/storage_table.cc",
+    "src/trace_processor/syscall_tracker.cc",
+    "src/trace_processor/systrace_parser.cc",
+    "src/trace_processor/systrace_trace_parser.cc",
+    "src/trace_processor/thread_table.cc",
+    "src/trace_processor/trace_processor.cc",
+    "src/trace_processor/trace_processor_context.cc",
+    "src/trace_processor/trace_processor_impl.cc",
+    "src/trace_processor/trace_sorter.cc",
+    "src/trace_processor/trace_storage.cc",
+    "src/trace_processor/track_tracker.cc",
+    "src/trace_processor/virtual_destructors.cc",
+    "src/trace_processor/vulkan_memory_tracker.cc",
+    "src/trace_processor/window_operator_table.cc",
+  ],
+}
+
+// GN: //src/trace_processor/metrics:lib
+filegroup {
+  name: "perfetto_src_trace_processor_metrics_lib",
+  srcs: [
+    "src/trace_processor/metrics/descriptors.cc",
+    "src/trace_processor/metrics/metrics.cc",
+  ],
+}
+
+// GN: //src/trace_processor/metrics:unittests
+filegroup {
+  name: "perfetto_src_trace_processor_metrics_unittests",
+  srcs: [
+    "src/trace_processor/metrics/metrics_unittest.cc",
+  ],
+}
+
+// GN: //src/trace_processor/sqlite:sqlite
+filegroup {
+  name: "perfetto_src_trace_processor_sqlite_sqlite",
+  srcs: [
+    "src/trace_processor/sqlite/db_sqlite_table.cc",
+    "src/trace_processor/sqlite/query_constraints.cc",
+    "src/trace_processor/sqlite/sqlite3_str_split.cc",
+    "src/trace_processor/sqlite/sqlite_table.cc",
+  ],
+}
+
+// GN: //src/trace_processor/sqlite:unittests
+filegroup {
+  name: "perfetto_src_trace_processor_sqlite_unittests",
+  srcs: [
+    "src/trace_processor/sqlite/query_constraints_unittest.cc",
+    "src/trace_processor/sqlite/sqlite3_str_split_unittest.cc",
+  ],
+}
+
+// GN: //src/trace_processor/tables:tables
+filegroup {
+  name: "perfetto_src_trace_processor_tables_tables",
+}
+
+// GN: //src/trace_processor/tables:unittests
+filegroup {
+  name: "perfetto_src_trace_processor_tables_unittests",
+  srcs: [
+    "src/trace_processor/tables/macros_unittest.cc",
+  ],
+}
+
+// GN: //src/trace_processor:unittests
+filegroup {
+  name: "perfetto_src_trace_processor_unittests",
+  srcs: [
+    "src/trace_processor/args_table_unittest.cc",
+    "src/trace_processor/clock_tracker_unittest.cc",
+    "src/trace_processor/event_tracker_unittest.cc",
+    "src/trace_processor/filtered_row_index_unittest.cc",
+    "src/trace_processor/forwarding_trace_parser_unittest.cc",
+    "src/trace_processor/ftrace_utils_unittest.cc",
+    "src/trace_processor/fuchsia_trace_utils_unittest.cc",
+    "src/trace_processor/heap_profile_tracker_unittest.cc",
+    "src/trace_processor/metadata_table_unittest.cc",
+    "src/trace_processor/null_term_string_view_unittest.cc",
+    "src/trace_processor/process_table_unittest.cc",
+    "src/trace_processor/process_tracker_unittest.cc",
+    "src/trace_processor/proto_trace_parser_unittest.cc",
+    "src/trace_processor/sched_slice_table_unittest.cc",
+    "src/trace_processor/slice_tracker_unittest.cc",
+    "src/trace_processor/span_join_operator_table_unittest.cc",
+    "src/trace_processor/string_pool_unittest.cc",
+    "src/trace_processor/syscall_tracker_unittest.cc",
+    "src/trace_processor/systrace_parser_unittest.cc",
+    "src/trace_processor/thread_table_unittest.cc",
+    "src/trace_processor/trace_sorter_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes/android_log:android_log
+filegroup {
+  name: "perfetto_src_traced_probes_android_log_android_log",
+  srcs: [
+    "src/traced/probes/android_log/android_log_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/android_log:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_android_log_unittests",
+  srcs: [
+    "src/traced/probes/android_log/android_log_data_source_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes:data_source
+filegroup {
+  name: "perfetto_src_traced_probes_data_source",
+  srcs: [
+    "src/traced/probes/probes_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/filesystem:filesystem
+filegroup {
+  name: "perfetto_src_traced_probes_filesystem_filesystem",
+  srcs: [
+    "src/traced/probes/filesystem/file_scanner.cc",
+    "src/traced/probes/filesystem/fs_mount.cc",
+    "src/traced/probes/filesystem/inode_file_data_source.cc",
+    "src/traced/probes/filesystem/lru_inode_cache.cc",
+    "src/traced/probes/filesystem/prefix_finder.cc",
+    "src/traced/probes/filesystem/range_tree.cc",
+  ],
+}
+
+// GN: //src/traced/probes/filesystem:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_filesystem_unittests",
+  srcs: [
+    "src/traced/probes/filesystem/file_scanner_unittest.cc",
+    "src/traced/probes/filesystem/fs_mount_unittest.cc",
+    "src/traced/probes/filesystem/inode_file_data_source_unittest.cc",
+    "src/traced/probes/filesystem/lru_inode_cache_unittest.cc",
+    "src/traced/probes/filesystem/prefix_finder_unittest.cc",
+    "src/traced/probes/filesystem/range_tree_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ftrace:format_parser
+filegroup {
+  name: "perfetto_src_traced_probes_ftrace_format_parser",
+  srcs: [
+    "src/traced/probes/ftrace/format_parser.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ftrace:ftrace
+filegroup {
+  name: "perfetto_src_traced_probes_ftrace_ftrace",
+  srcs: [
+    "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
+    "src/traced/probes/ftrace/atrace_wrapper.cc",
+    "src/traced/probes/ftrace/compact_sched.cc",
+    "src/traced/probes/ftrace/cpu_reader.cc",
+    "src/traced/probes/ftrace/cpu_stats_parser.cc",
+    "src/traced/probes/ftrace/event_info.cc",
+    "src/traced/probes/ftrace/event_info_constants.cc",
+    "src/traced/probes/ftrace/ftrace_config.cc",
+    "src/traced/probes/ftrace/ftrace_config_muxer.cc",
+    "src/traced/probes/ftrace/ftrace_config_utils.cc",
+    "src/traced/probes/ftrace/ftrace_controller.cc",
+    "src/traced/probes/ftrace/ftrace_data_source.cc",
+    "src/traced/probes/ftrace/ftrace_metadata.cc",
+    "src/traced/probes/ftrace/ftrace_procfs.cc",
+    "src/traced/probes/ftrace/ftrace_stats.cc",
+    "src/traced/probes/ftrace/proto_translation_table.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ftrace:integrationtests
+filegroup {
+  name: "perfetto_src_traced_probes_ftrace_integrationtests",
+  srcs: [
+    "src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ftrace:test_messages_lite
 genrule {
   name: "perfetto_src_traced_probes_ftrace_test_messages_lite_gen",
   srcs: [
@@ -3965,13 +4215,13 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/src/traced/probes/ftrace/test/test_messages.pb.cc",
   ],
 }
 
-// GN target: //src/traced/probes/ftrace:test_messages_lite_gen
+// GN: //src/traced/probes/ftrace:test_messages_lite
 genrule {
   name: "perfetto_src_traced_probes_ftrace_test_messages_lite_gen_headers",
   srcs: [
@@ -3980,7 +4230,7 @@
   tools: [
     "aprotoc",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto $(in)",
   out: [
     "external/perfetto/src/traced/probes/ftrace/test/test_messages.pb.h",
   ],
@@ -3990,7 +4240,7 @@
   ],
 }
 
-// GN target: //src/traced/probes/ftrace:test_messages_zero_gen
+// GN: //src/traced/probes/ftrace:test_messages_zero
 genrule {
   name: "perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
   srcs: [
@@ -3998,15 +4248,15 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/src/traced/probes/ftrace/test/test_messages.pbzero.cc",
   ],
 }
 
-// GN target: //src/traced/probes/ftrace:test_messages_zero_gen
+// GN: //src/traced/probes/ftrace:test_messages_zero
 genrule {
   name: "perfetto_src_traced_probes_ftrace_test_messages_zero_gen_headers",
   srcs: [
@@ -4014,9 +4264,9 @@
   ],
   tools: [
     "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_",
+    "protozero_plugin",
   ],
-  cmd: "mkdir -p $(genDir)/external/perfetto && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protozero_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto $(in)",
+  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/ --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
   out: [
     "external/perfetto/src/traced/probes/ftrace/test/test_messages.pbzero.h",
   ],
@@ -4026,7 +4276,359 @@
   ],
 }
 
-// GN target: //protos/perfetto/trace:perfetto_trace_protos
+// GN: //src/traced/probes/ftrace:test_support
+filegroup {
+  name: "perfetto_src_traced_probes_ftrace_test_support",
+  srcs: [
+    "src/traced/probes/ftrace/test/cpu_reader_support.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ftrace:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_ftrace_unittests",
+  srcs: [
+    "src/traced/probes/ftrace/cpu_reader_unittest.cc",
+    "src/traced/probes/ftrace/cpu_stats_parser_unittest.cc",
+    "src/traced/probes/ftrace/event_info_unittest.cc",
+    "src/traced/probes/ftrace/format_parser_unittest.cc",
+    "src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc",
+    "src/traced/probes/ftrace/ftrace_config_unittest.cc",
+    "src/traced/probes/ftrace/ftrace_controller_unittest.cc",
+    "src/traced/probes/ftrace/ftrace_procfs_unittest.cc",
+    "src/traced/probes/ftrace/proto_translation_table_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes/metatrace:metatrace
+filegroup {
+  name: "perfetto_src_traced_probes_metatrace_metatrace",
+  srcs: [
+    "src/traced/probes/metatrace/metatrace_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/packages_list:packages_list
+filegroup {
+  name: "perfetto_src_traced_probes_packages_list_packages_list",
+  srcs: [
+    "src/traced/probes/packages_list/packages_list_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/packages_list:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_packages_list_unittests",
+  srcs: [
+    "src/traced/probes/packages_list/packages_list_data_source_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes/power:power
+filegroup {
+  name: "perfetto_src_traced_probes_power_power",
+  srcs: [
+    "src/traced/probes/power/android_power_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes:probes
+filegroup {
+  name: "perfetto_src_traced_probes_probes",
+  srcs: [
+    "src/traced/probes/probes.cc",
+  ],
+}
+
+// GN: //src/traced/probes:probes_src
+filegroup {
+  name: "perfetto_src_traced_probes_probes_src",
+  srcs: [
+    "src/traced/probes/probes_producer.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ps:ps
+filegroup {
+  name: "perfetto_src_traced_probes_ps_ps",
+  srcs: [
+    "src/traced/probes/ps/process_stats_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/ps:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_ps_unittests",
+  srcs: [
+    "src/traced/probes/ps/process_stats_data_source_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes/sys_stats:sys_stats
+filegroup {
+  name: "perfetto_src_traced_probes_sys_stats_sys_stats",
+  srcs: [
+    "src/traced/probes/sys_stats/sys_stats_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/sys_stats:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_sys_stats_unittests",
+  srcs: [
+    "src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc",
+  ],
+}
+
+// GN: //src/traced/probes:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_unittests",
+}
+
+// GN: //src/traced/service:service
+filegroup {
+  name: "perfetto_src_traced_service_service",
+  srcs: [
+    "src/traced/service/builtin_producer.cc",
+    "src/traced/service/service.cc",
+  ],
+}
+
+// GN: //src/traced/service:unittests
+filegroup {
+  name: "perfetto_src_traced_service_unittests",
+  srcs: [
+    "src/traced/service/builtin_producer_unittest.cc",
+  ],
+}
+
+// GN: //src/tracing:client_api
+filegroup {
+  name: "perfetto_src_tracing_client_api",
+  srcs: [
+    "src/tracing/data_source.cc",
+    "src/tracing/internal/in_process_tracing_backend.cc",
+    "src/tracing/internal/system_tracing_backend.cc",
+    "src/tracing/internal/tracing_muxer_impl.cc",
+    "src/tracing/platform.cc",
+    "src/tracing/tracing.cc",
+    "src/tracing/track_event.cc",
+    "src/tracing/virtual_destructors.cc",
+  ],
+}
+
+// GN: //src/tracing:client_api_integrationtests
+filegroup {
+  name: "perfetto_src_tracing_client_api_integrationtests",
+  srcs: [
+    "src/tracing/api_integrationtest.cc",
+  ],
+}
+
+// GN: //src/tracing:common
+filegroup {
+  name: "perfetto_src_tracing_common",
+  srcs: [
+    "src/tracing/trace_writer_base.cc",
+  ],
+}
+
+// GN: //src/tracing:consumer_api_deprecated
+filegroup {
+  name: "perfetto_src_tracing_consumer_api_deprecated",
+  srcs: [
+    "src/tracing/api_impl/consumer_api.cc",
+  ],
+}
+
+// GN: //src/tracing:ipc
+filegroup {
+  name: "perfetto_src_tracing_ipc",
+  srcs: [
+    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
+    "src/tracing/ipc/default_socket.cc",
+    "src/tracing/ipc/posix_shared_memory.cc",
+    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
+    "src/tracing/ipc/service/consumer_ipc_service.cc",
+    "src/tracing/ipc/service/producer_ipc_service.cc",
+    "src/tracing/ipc/service/service_ipc_host_impl.cc",
+  ],
+}
+
+// GN: //src/tracing:platform_posix
+filegroup {
+  name: "perfetto_src_tracing_platform_posix",
+  srcs: [
+    "src/tracing/platform_posix.cc",
+  ],
+}
+
+// GN: //src/tracing/test:api_test_support
+filegroup {
+  name: "perfetto_src_tracing_test_api_test_support",
+  srcs: [
+    "src/tracing/test/api_test_support.cc",
+  ],
+}
+
+// GN: //src/tracing:test_support
+filegroup {
+  name: "perfetto_src_tracing_test_support",
+  srcs: [
+    "src/tracing/core/trace_writer_for_testing.cc",
+  ],
+}
+
+// GN: //src/tracing:tracing
+filegroup {
+  name: "perfetto_src_tracing_tracing",
+  srcs: [
+    "src/tracing/core/chrome_config.cc",
+    "src/tracing/core/commit_data_request.cc",
+    "src/tracing/core/data_source_config.cc",
+    "src/tracing/core/data_source_descriptor.cc",
+    "src/tracing/core/id_allocator.cc",
+    "src/tracing/core/metatrace_writer.cc",
+    "src/tracing/core/null_trace_writer.cc",
+    "src/tracing/core/observable_events.cc",
+    "src/tracing/core/packet_stream_validator.cc",
+    "src/tracing/core/shared_memory_abi.cc",
+    "src/tracing/core/shared_memory_arbiter_impl.cc",
+    "src/tracing/core/sliced_protobuf_input_stream.cc",
+    "src/tracing/core/startup_trace_writer.cc",
+    "src/tracing/core/startup_trace_writer_registry.cc",
+    "src/tracing/core/test_config.cc",
+    "src/tracing/core/trace_buffer.cc",
+    "src/tracing/core/trace_config.cc",
+    "src/tracing/core/trace_packet.cc",
+    "src/tracing/core/trace_stats.cc",
+    "src/tracing/core/trace_writer_impl.cc",
+    "src/tracing/core/tracing_service_impl.cc",
+    "src/tracing/core/tracing_service_state.cc",
+    "src/tracing/core/virtual_destructors.cc",
+  ],
+}
+
+// GN: //src/tracing:unittests
+filegroup {
+  name: "perfetto_src_tracing_unittests",
+  srcs: [
+    "src/tracing/core/id_allocator_unittest.cc",
+    "src/tracing/core/null_trace_writer_unittest.cc",
+    "src/tracing/core/packet_stream_validator_unittest.cc",
+    "src/tracing/core/patch_list_unittest.cc",
+    "src/tracing/core/shared_memory_abi_unittest.cc",
+    "src/tracing/core/shared_memory_arbiter_impl_unittest.cc",
+    "src/tracing/core/sliced_protobuf_input_stream_unittest.cc",
+    "src/tracing/core/startup_trace_writer_unittest.cc",
+    "src/tracing/core/trace_buffer_unittest.cc",
+    "src/tracing/core/trace_packet_unittest.cc",
+    "src/tracing/core/trace_writer_impl_unittest.cc",
+    "src/tracing/core/tracing_service_impl_unittest.cc",
+    "src/tracing/ipc/posix_shared_memory_unittest.cc",
+    "src/tracing/test/aligned_buffer_test.cc",
+    "src/tracing/test/fake_packet.cc",
+    "src/tracing/test/mock_consumer.cc",
+    "src/tracing/test/mock_producer.cc",
+    "src/tracing/test/test_shared_memory.cc",
+    "src/tracing/test/tracing_integration_test.cc",
+  ],
+}
+
+// GN: //test:end_to_end_integrationtests
+filegroup {
+  name: "perfetto_test_end_to_end_integrationtests",
+  srcs: [
+    "test/end_to_end_integrationtest.cc",
+  ],
+}
+
+// GN: //test:task_runner_thread
+filegroup {
+  name: "perfetto_test_task_runner_thread",
+  srcs: [
+    "test/task_runner_thread.cc",
+  ],
+}
+
+// GN: //test:task_runner_thread_delegates
+filegroup {
+  name: "perfetto_test_task_runner_thread_delegates",
+  srcs: [
+    "test/fake_producer.cc",
+    "test/task_runner_thread_delegates.cc",
+  ],
+}
+
+// GN: //test:test_helper
+filegroup {
+  name: "perfetto_test_test_helper",
+  srcs: [
+    "test/test_helper.cc",
+  ],
+}
+
+// GN: //tools/sanitizers_unittests:sanitizers_unittests
+filegroup {
+  name: "perfetto_tools_sanitizers_unittests_sanitizers_unittests",
+  srcs: [
+    "tools/sanitizers_unittests/sanitizers_unittest.cc",
+  ],
+}
+
+// GN: //tools/trace_to_text:common
+filegroup {
+  name: "perfetto_tools_trace_to_text_common",
+  srcs: [
+    "tools/trace_to_text/main.cc",
+    "tools/trace_to_text/symbolize_profile.cc",
+    "tools/trace_to_text/trace_to_profile.cc",
+    "tools/trace_to_text/trace_to_systrace.cc",
+  ],
+}
+
+// GN: //tools/trace_to_text:full
+filegroup {
+  name: "perfetto_tools_trace_to_text_full",
+  srcs: [
+    "tools/trace_to_text/proto_full_utils.cc",
+    "tools/trace_to_text/trace_to_text.cc",
+  ],
+}
+
+// GN: //tools/trace_to_text:local_symbolizer
+filegroup {
+  name: "perfetto_tools_trace_to_text_local_symbolizer",
+  srcs: [
+    "tools/trace_to_text/local_symbolizer.cc",
+  ],
+}
+
+// GN: //tools/trace_to_text:pprofbuilder
+filegroup {
+  name: "perfetto_tools_trace_to_text_pprofbuilder",
+  srcs: [
+    "tools/trace_to_text/pprof_builder.cc",
+  ],
+}
+
+// GN: //tools/trace_to_text:symbolizer
+filegroup {
+  name: "perfetto_tools_trace_to_text_symbolizer",
+  srcs: [
+    "tools/trace_to_text/symbolizer.cc",
+  ],
+}
+
+// GN: //tools/trace_to_text:utils
+filegroup {
+  name: "perfetto_tools_trace_to_text_utils",
+  srcs: [
+    "tools/trace_to_text/utils.cc",
+  ],
+}
+
+// GN: //protos/perfetto/trace:perfetto_trace_protos
 cc_library_static {
   name: "perfetto_trace_protos",
   srcs: [
@@ -4124,10 +4726,22 @@
   ],
 }
 
-// GN target: //:perfetto_unittests
+// GN: //:perfetto_unittests
 cc_test {
   name: "perfetto_unittests",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    ":perfetto_include_perfetto_ext_traced_traced",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_profiling_normalize",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_trace_processor_trace_processor",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -4182,316 +4796,71 @@
     ":perfetto_protos_perfetto_trace_track_event_lite_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
+    ":perfetto_src_android_internal_headers",
+    ":perfetto_src_android_internal_lazy_library_loader",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_test_support",
+    ":perfetto_src_base_unittests",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
     ":perfetto_src_ipc_test_messages_gen",
+    ":perfetto_src_ipc_unittests",
+    ":perfetto_src_perfetto_cmd_perfetto_cmd",
     ":perfetto_src_perfetto_cmd_protos_gen",
+    ":perfetto_src_perfetto_cmd_trigger_producer",
+    ":perfetto_src_perfetto_cmd_unittests",
+    ":perfetto_src_profiling_memory_client",
+    ":perfetto_src_profiling_memory_daemon",
+    ":perfetto_src_profiling_memory_proc_utils",
+    ":perfetto_src_profiling_memory_ring_buffer",
+    ":perfetto_src_profiling_memory_ring_buffer_unittests",
+    ":perfetto_src_profiling_memory_scoped_spinlock",
+    ":perfetto_src_profiling_memory_unittests",
+    ":perfetto_src_profiling_memory_wire_protocol",
+    ":perfetto_src_protozero_protozero",
     ":perfetto_src_protozero_testing_messages_lite_gen",
     ":perfetto_src_protozero_testing_messages_zero_gen",
+    ":perfetto_src_protozero_unittests",
+    ":perfetto_src_trace_processor_common",
+    ":perfetto_src_trace_processor_db_lib",
+    ":perfetto_src_trace_processor_db_unittests",
+    ":perfetto_src_trace_processor_lib",
+    ":perfetto_src_trace_processor_metrics_lib",
+    ":perfetto_src_trace_processor_metrics_unittests",
+    ":perfetto_src_trace_processor_sqlite_sqlite",
+    ":perfetto_src_trace_processor_sqlite_unittests",
+    ":perfetto_src_trace_processor_tables_tables",
+    ":perfetto_src_trace_processor_tables_unittests",
+    ":perfetto_src_trace_processor_unittests",
+    ":perfetto_src_traced_probes_android_log_android_log",
+    ":perfetto_src_traced_probes_android_log_unittests",
+    ":perfetto_src_traced_probes_data_source",
+    ":perfetto_src_traced_probes_filesystem_filesystem",
+    ":perfetto_src_traced_probes_filesystem_unittests",
+    ":perfetto_src_traced_probes_ftrace_format_parser",
+    ":perfetto_src_traced_probes_ftrace_ftrace",
     ":perfetto_src_traced_probes_ftrace_test_messages_lite_gen",
     ":perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
-    "src/android_internal/lazy_library_loader.cc",
-    "src/base/circular_queue_unittest.cc",
-    "src/base/copyable_ptr_unittest.cc",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/metatrace_unittest.cc",
-    "src/base/no_destructor_unittest.cc",
-    "src/base/optional_unittest.cc",
-    "src/base/paged_memory.cc",
-    "src/base/paged_memory_unittest.cc",
-    "src/base/pipe.cc",
-    "src/base/scoped_file_unittest.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_splitter_unittest.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_utils_unittest.cc",
-    "src/base/string_view.cc",
-    "src/base/string_view_unittest.cc",
-    "src/base/string_writer_unittest.cc",
-    "src/base/task_runner_unittest.cc",
-    "src/base/temp_file.cc",
-    "src/base/temp_file_unittest.cc",
-    "src/base/test/test_task_runner.cc",
-    "src/base/test/utils.cc",
-    "src/base/test/vm_test_utils.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_checker_unittest.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/thread_task_runner_unittest.cc",
-    "src/base/time.cc",
-    "src/base/time_unittest.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_socket_unittest.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/utils_unittest.cc",
-    "src/base/uuid.cc",
-    "src/base/uuid_unittest.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/base/watchdog_unittest.cc",
-    "src/base/weak_ptr_unittest.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/buffered_frame_deserializer_unittest.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/client_impl_unittest.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/deferred_unittest.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/host_impl_unittest.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/test/ipc_integrationtest.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/perfetto_cmd/config.cc",
-    "src/perfetto_cmd/config_unittest.cc",
-    "src/perfetto_cmd/packet_writer.cc",
-    "src/perfetto_cmd/packet_writer_unittest.cc",
-    "src/perfetto_cmd/pbtxt_to_pb.cc",
-    "src/perfetto_cmd/pbtxt_to_pb_unittest.cc",
-    "src/perfetto_cmd/perfetto_cmd.cc",
-    "src/perfetto_cmd/perfetto_cmd_android.cc",
-    "src/perfetto_cmd/rate_limiter.cc",
-    "src/perfetto_cmd/rate_limiter_unittest.cc",
-    "src/perfetto_cmd/trigger_producer.cc",
-    "src/profiling/memory/bookkeeping.cc",
-    "src/profiling/memory/bookkeeping_dump.cc",
-    "src/profiling/memory/bookkeeping_unittest.cc",
-    "src/profiling/memory/client.cc",
-    "src/profiling/memory/client_unittest.cc",
-    "src/profiling/memory/heapprofd_config.cc",
-    "src/profiling/memory/heapprofd_producer.cc",
-    "src/profiling/memory/heapprofd_producer_unittest.cc",
-    "src/profiling/memory/interner_unittest.cc",
-    "src/profiling/memory/java_hprof_config.cc",
-    "src/profiling/memory/java_hprof_producer.cc",
-    "src/profiling/memory/page_idle_checker.cc",
-    "src/profiling/memory/page_idle_checker_unittest.cc",
-    "src/profiling/memory/proc_utils.cc",
-    "src/profiling/memory/proc_utils_unittest.cc",
-    "src/profiling/memory/sampler_unittest.cc",
-    "src/profiling/memory/scoped_spinlock.cc",
-    "src/profiling/memory/shared_ring_buffer.cc",
-    "src/profiling/memory/shared_ring_buffer_unittest.cc",
-    "src/profiling/memory/system_property.cc",
-    "src/profiling/memory/system_property_unittest.cc",
-    "src/profiling/memory/unwinding.cc",
-    "src/profiling/memory/unwinding_unittest.cc",
-    "src/profiling/memory/utils.cc",
-    "src/profiling/memory/wire_protocol.cc",
-    "src/profiling/memory/wire_protocol_unittest.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/message_handle_unittest.cc",
-    "src/protozero/message_unittest.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/proto_decoder_unittest.cc",
-    "src/protozero/proto_utils_unittest.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/protozero/scattered_stream_writer_unittest.cc",
-    "src/protozero/test/fake_scattered_buffer.cc",
-    "src/protozero/test/protozero_conformance_unittest.cc",
-    "src/trace_processor/android_logs_table.cc",
-    "src/trace_processor/args_table.cc",
-    "src/trace_processor/args_table_unittest.cc",
-    "src/trace_processor/args_tracker.cc",
-    "src/trace_processor/clock_tracker.cc",
-    "src/trace_processor/clock_tracker_unittest.cc",
-    "src/trace_processor/counter_definitions_table.cc",
-    "src/trace_processor/counter_values_table.cc",
-    "src/trace_processor/cpu_profile_stack_sample_table.cc",
-    "src/trace_processor/db/bit_vector.cc",
-    "src/trace_processor/db/bit_vector_unittest.cc",
-    "src/trace_processor/db/column.cc",
-    "src/trace_processor/db/row_map.cc",
-    "src/trace_processor/db/row_map_unittest.cc",
-    "src/trace_processor/db/sparse_vector_unittest.cc",
-    "src/trace_processor/db/table.cc",
-    "src/trace_processor/event_tracker.cc",
-    "src/trace_processor/event_tracker_unittest.cc",
-    "src/trace_processor/filtered_row_index.cc",
-    "src/trace_processor/filtered_row_index_unittest.cc",
-    "src/trace_processor/forwarding_trace_parser.cc",
-    "src/trace_processor/forwarding_trace_parser_unittest.cc",
-    "src/trace_processor/ftrace_descriptors.cc",
-    "src/trace_processor/ftrace_utils.cc",
-    "src/trace_processor/ftrace_utils_unittest.cc",
-    "src/trace_processor/fuchsia_provider_view.cc",
-    "src/trace_processor/fuchsia_trace_parser.cc",
-    "src/trace_processor/fuchsia_trace_tokenizer.cc",
-    "src/trace_processor/fuchsia_trace_utils.cc",
-    "src/trace_processor/fuchsia_trace_utils_unittest.cc",
-    "src/trace_processor/graphics_event_parser.cc",
-    "src/trace_processor/gzip_trace_parser.cc",
-    "src/trace_processor/heap_graph_tracker.cc",
-    "src/trace_processor/heap_profile_allocation_table.cc",
-    "src/trace_processor/heap_profile_tracker.cc",
-    "src/trace_processor/heap_profile_tracker_unittest.cc",
-    "src/trace_processor/instants_table.cc",
-    "src/trace_processor/metadata_table.cc",
-    "src/trace_processor/metadata_table_unittest.cc",
-    "src/trace_processor/metrics/descriptors.cc",
-    "src/trace_processor/metrics/metrics.cc",
-    "src/trace_processor/metrics/metrics_unittest.cc",
-    "src/trace_processor/null_term_string_view_unittest.cc",
-    "src/trace_processor/process_table.cc",
-    "src/trace_processor/process_table_unittest.cc",
-    "src/trace_processor/process_tracker.cc",
-    "src/trace_processor/process_tracker_unittest.cc",
-    "src/trace_processor/proto_trace_parser.cc",
-    "src/trace_processor/proto_trace_parser_unittest.cc",
-    "src/trace_processor/proto_trace_tokenizer.cc",
-    "src/trace_processor/raw_table.cc",
-    "src/trace_processor/row_iterators.cc",
-    "src/trace_processor/sched_slice_table.cc",
-    "src/trace_processor/sched_slice_table_unittest.cc",
-    "src/trace_processor/slice_table.cc",
-    "src/trace_processor/slice_tracker.cc",
-    "src/trace_processor/slice_tracker_unittest.cc",
-    "src/trace_processor/span_join_operator_table.cc",
-    "src/trace_processor/span_join_operator_table_unittest.cc",
-    "src/trace_processor/sql_stats_table.cc",
-    "src/trace_processor/sqlite/db_sqlite_table.cc",
-    "src/trace_processor/sqlite/query_constraints.cc",
-    "src/trace_processor/sqlite/query_constraints_unittest.cc",
-    "src/trace_processor/sqlite/sqlite3_str_split.cc",
-    "src/trace_processor/sqlite/sqlite3_str_split_unittest.cc",
-    "src/trace_processor/sqlite/sqlite_table.cc",
-    "src/trace_processor/stack_profile_callsite_table.cc",
-    "src/trace_processor/stack_profile_frame_table.cc",
-    "src/trace_processor/stack_profile_mapping_table.cc",
-    "src/trace_processor/stack_profile_tracker.cc",
-    "src/trace_processor/stats_table.cc",
-    "src/trace_processor/storage_columns.cc",
-    "src/trace_processor/storage_schema.cc",
-    "src/trace_processor/storage_table.cc",
-    "src/trace_processor/string_pool.cc",
-    "src/trace_processor/string_pool_unittest.cc",
-    "src/trace_processor/syscall_tracker.cc",
-    "src/trace_processor/syscall_tracker_unittest.cc",
-    "src/trace_processor/systrace_parser.cc",
-    "src/trace_processor/systrace_parser_unittest.cc",
-    "src/trace_processor/systrace_trace_parser.cc",
-    "src/trace_processor/tables/macros_unittest.cc",
-    "src/trace_processor/thread_table.cc",
-    "src/trace_processor/thread_table_unittest.cc",
-    "src/trace_processor/trace_processor.cc",
-    "src/trace_processor/trace_processor_context.cc",
-    "src/trace_processor/trace_processor_impl.cc",
-    "src/trace_processor/trace_sorter.cc",
-    "src/trace_processor/trace_sorter_unittest.cc",
-    "src/trace_processor/trace_storage.cc",
-    "src/trace_processor/track_tracker.cc",
-    "src/trace_processor/virtual_destructors.cc",
-    "src/trace_processor/vulkan_memory_tracker.cc",
-    "src/trace_processor/window_operator_table.cc",
-    "src/traced/probes/android_log/android_log_data_source.cc",
-    "src/traced/probes/android_log/android_log_data_source_unittest.cc",
-    "src/traced/probes/filesystem/file_scanner.cc",
-    "src/traced/probes/filesystem/file_scanner_unittest.cc",
-    "src/traced/probes/filesystem/fs_mount.cc",
-    "src/traced/probes/filesystem/fs_mount_unittest.cc",
-    "src/traced/probes/filesystem/inode_file_data_source.cc",
-    "src/traced/probes/filesystem/inode_file_data_source_unittest.cc",
-    "src/traced/probes/filesystem/lru_inode_cache.cc",
-    "src/traced/probes/filesystem/lru_inode_cache_unittest.cc",
-    "src/traced/probes/filesystem/prefix_finder.cc",
-    "src/traced/probes/filesystem/prefix_finder_unittest.cc",
-    "src/traced/probes/filesystem/range_tree.cc",
-    "src/traced/probes/filesystem/range_tree_unittest.cc",
-    "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
-    "src/traced/probes/ftrace/atrace_wrapper.cc",
-    "src/traced/probes/ftrace/compact_sched.cc",
-    "src/traced/probes/ftrace/cpu_reader.cc",
-    "src/traced/probes/ftrace/cpu_reader_unittest.cc",
-    "src/traced/probes/ftrace/cpu_stats_parser.cc",
-    "src/traced/probes/ftrace/cpu_stats_parser_unittest.cc",
-    "src/traced/probes/ftrace/event_info.cc",
-    "src/traced/probes/ftrace/event_info_constants.cc",
-    "src/traced/probes/ftrace/event_info_unittest.cc",
-    "src/traced/probes/ftrace/format_parser.cc",
-    "src/traced/probes/ftrace/format_parser_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_config.cc",
-    "src/traced/probes/ftrace/ftrace_config_muxer.cc",
-    "src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_config_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_config_utils.cc",
-    "src/traced/probes/ftrace/ftrace_controller.cc",
-    "src/traced/probes/ftrace/ftrace_controller_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_data_source.cc",
-    "src/traced/probes/ftrace/ftrace_metadata.cc",
-    "src/traced/probes/ftrace/ftrace_procfs.cc",
-    "src/traced/probes/ftrace/ftrace_procfs_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_stats.cc",
-    "src/traced/probes/ftrace/proto_translation_table.cc",
-    "src/traced/probes/ftrace/proto_translation_table_unittest.cc",
-    "src/traced/probes/ftrace/test/cpu_reader_support.cc",
-    "src/traced/probes/metatrace/metatrace_data_source.cc",
-    "src/traced/probes/packages_list/packages_list_data_source.cc",
-    "src/traced/probes/packages_list/packages_list_data_source_unittest.cc",
-    "src/traced/probes/power/android_power_data_source.cc",
-    "src/traced/probes/probes_data_source.cc",
-    "src/traced/probes/probes_producer.cc",
-    "src/traced/probes/ps/process_stats_data_source.cc",
-    "src/traced/probes/ps/process_stats_data_source_unittest.cc",
-    "src/traced/probes/sys_stats/sys_stats_data_source.cc",
-    "src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc",
-    "src/traced/service/builtin_producer.cc",
-    "src/traced/service/builtin_producer_unittest.cc",
-    "src/traced/service/service.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/id_allocator_unittest.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/null_trace_writer_unittest.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/packet_stream_validator_unittest.cc",
-    "src/tracing/core/patch_list_unittest.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_abi_unittest.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/shared_memory_arbiter_impl_unittest.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/sliced_protobuf_input_stream_unittest.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/startup_trace_writer_unittest.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_buffer_unittest.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_packet_unittest.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_for_testing.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/trace_writer_impl_unittest.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_impl_unittest.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/posix_shared_memory_unittest.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/test/aligned_buffer_test.cc",
-    "src/tracing/test/fake_packet.cc",
-    "src/tracing/test/mock_consumer.cc",
-    "src/tracing/test/mock_producer.cc",
-    "src/tracing/test/test_shared_memory.cc",
-    "src/tracing/test/tracing_integration_test.cc",
-    "src/tracing/trace_writer_base.cc",
-    "tools/sanitizers_unittests/sanitizers_unittest.cc",
+    ":perfetto_src_traced_probes_ftrace_test_support",
+    ":perfetto_src_traced_probes_ftrace_unittests",
+    ":perfetto_src_traced_probes_metatrace_metatrace",
+    ":perfetto_src_traced_probes_packages_list_packages_list",
+    ":perfetto_src_traced_probes_packages_list_unittests",
+    ":perfetto_src_traced_probes_power_power",
+    ":perfetto_src_traced_probes_probes_src",
+    ":perfetto_src_traced_probes_ps_ps",
+    ":perfetto_src_traced_probes_ps_unittests",
+    ":perfetto_src_traced_probes_sys_stats_sys_stats",
+    ":perfetto_src_traced_probes_sys_stats_unittests",
+    ":perfetto_src_traced_probes_unittests",
+    ":perfetto_src_traced_service_service",
+    ":perfetto_src_traced_service_unittests",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_test_support",
+    ":perfetto_src_tracing_tracing",
+    ":perfetto_src_tracing_unittests",
+    ":perfetto_tools_sanitizers_unittests_sanitizers_unittests",
   ],
   shared_libs: [
     "libbase",
@@ -4596,10 +4965,36 @@
   },
 }
 
-// GN target: //src/trace_processor:trace_processor_shell
+// GN: //src/protozero/protoc_plugin:protozero_plugin
+cc_binary_host {
+  name: "protozero_plugin",
+  srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_src_base_base",
+    "src/protozero/protoc_plugin/protozero_plugin.cc",
+  ],
+  shared_libs: [
+    "libprotoc",
+  ],
+  defaults: [
+    "perfetto_defaults",
+  ],
+  cflags: [
+    "-DGOOGLE_PROTOBUF_NO_RTTI",
+    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+  ],
+}
+
+// GN: //src/trace_processor:trace_processor_shell
 cc_binary_host {
   name: "trace_processor_shell",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_trace_processor_trace_processor",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_zero_gen",
     ":perfetto_protos_perfetto_config_ftrace_zero_gen",
@@ -4627,100 +5022,18 @@
     ":perfetto_protos_perfetto_trace_ps_zero_gen",
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/trace_processor/android_logs_table.cc",
-    "src/trace_processor/args_table.cc",
-    "src/trace_processor/args_tracker.cc",
-    "src/trace_processor/clock_tracker.cc",
-    "src/trace_processor/counter_definitions_table.cc",
-    "src/trace_processor/counter_values_table.cc",
-    "src/trace_processor/cpu_profile_stack_sample_table.cc",
-    "src/trace_processor/db/bit_vector.cc",
-    "src/trace_processor/db/column.cc",
-    "src/trace_processor/db/row_map.cc",
-    "src/trace_processor/db/table.cc",
-    "src/trace_processor/event_tracker.cc",
-    "src/trace_processor/filtered_row_index.cc",
-    "src/trace_processor/forwarding_trace_parser.cc",
-    "src/trace_processor/ftrace_descriptors.cc",
-    "src/trace_processor/ftrace_utils.cc",
-    "src/trace_processor/fuchsia_provider_view.cc",
-    "src/trace_processor/fuchsia_trace_parser.cc",
-    "src/trace_processor/fuchsia_trace_tokenizer.cc",
-    "src/trace_processor/fuchsia_trace_utils.cc",
-    "src/trace_processor/graphics_event_parser.cc",
-    "src/trace_processor/gzip_trace_parser.cc",
-    "src/trace_processor/heap_graph_tracker.cc",
-    "src/trace_processor/heap_profile_allocation_table.cc",
-    "src/trace_processor/heap_profile_tracker.cc",
-    "src/trace_processor/instants_table.cc",
-    "src/trace_processor/metadata_table.cc",
-    "src/trace_processor/metrics/descriptors.cc",
-    "src/trace_processor/metrics/metrics.cc",
-    "src/trace_processor/process_table.cc",
-    "src/trace_processor/process_tracker.cc",
+    ":perfetto_src_base_base",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_trace_processor_common",
+    ":perfetto_src_trace_processor_db_lib",
+    ":perfetto_src_trace_processor_lib",
+    ":perfetto_src_trace_processor_metrics_lib",
+    ":perfetto_src_trace_processor_sqlite_sqlite",
+    ":perfetto_src_trace_processor_tables_tables",
     "src/trace_processor/proto_to_json.cc",
-    "src/trace_processor/proto_trace_parser.cc",
-    "src/trace_processor/proto_trace_tokenizer.cc",
-    "src/trace_processor/raw_table.cc",
-    "src/trace_processor/row_iterators.cc",
-    "src/trace_processor/sched_slice_table.cc",
-    "src/trace_processor/slice_table.cc",
-    "src/trace_processor/slice_tracker.cc",
-    "src/trace_processor/span_join_operator_table.cc",
-    "src/trace_processor/sql_stats_table.cc",
-    "src/trace_processor/sqlite/db_sqlite_table.cc",
-    "src/trace_processor/sqlite/query_constraints.cc",
-    "src/trace_processor/sqlite/sqlite3_str_split.cc",
-    "src/trace_processor/sqlite/sqlite_table.cc",
-    "src/trace_processor/stack_profile_callsite_table.cc",
-    "src/trace_processor/stack_profile_frame_table.cc",
-    "src/trace_processor/stack_profile_mapping_table.cc",
-    "src/trace_processor/stack_profile_tracker.cc",
-    "src/trace_processor/stats_table.cc",
-    "src/trace_processor/storage_columns.cc",
-    "src/trace_processor/storage_schema.cc",
-    "src/trace_processor/storage_table.cc",
-    "src/trace_processor/string_pool.cc",
-    "src/trace_processor/syscall_tracker.cc",
-    "src/trace_processor/systrace_parser.cc",
-    "src/trace_processor/systrace_trace_parser.cc",
-    "src/trace_processor/thread_table.cc",
-    "src/trace_processor/trace_processor.cc",
-    "src/trace_processor/trace_processor_context.cc",
-    "src/trace_processor/trace_processor_impl.cc",
     "src/trace_processor/trace_processor_shell.cc",
-    "src/trace_processor/trace_sorter.cc",
-    "src/trace_processor/trace_storage.cc",
-    "src/trace_processor/track_tracker.cc",
-    "src/trace_processor/virtual_destructors.cc",
-    "src/trace_processor/vulkan_memory_tracker.cc",
-    "src/trace_processor/window_operator_table.cc",
   ],
   shared_libs: [
-    "liblog",
     "libprotoc",
     "libz",
   ],
@@ -4767,10 +5080,16 @@
   ],
 }
 
-// GN target: //tools/trace_to_text:trace_to_text
+// GN: //tools/trace_to_text:trace_to_text
 cc_binary_host {
   name: "trace_to_text",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    ":perfetto_include_perfetto_profiling_symbolizer",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_trace_processor_trace_processor",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -4823,108 +5142,22 @@
     ":perfetto_protos_perfetto_trace_track_event_lite_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_third_party_pprof_lite_gen",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/trace_processor/android_logs_table.cc",
-    "src/trace_processor/args_table.cc",
-    "src/trace_processor/args_tracker.cc",
-    "src/trace_processor/clock_tracker.cc",
-    "src/trace_processor/counter_definitions_table.cc",
-    "src/trace_processor/counter_values_table.cc",
-    "src/trace_processor/cpu_profile_stack_sample_table.cc",
-    "src/trace_processor/db/bit_vector.cc",
-    "src/trace_processor/db/column.cc",
-    "src/trace_processor/db/row_map.cc",
-    "src/trace_processor/db/table.cc",
-    "src/trace_processor/event_tracker.cc",
-    "src/trace_processor/filtered_row_index.cc",
-    "src/trace_processor/forwarding_trace_parser.cc",
-    "src/trace_processor/ftrace_descriptors.cc",
-    "src/trace_processor/ftrace_utils.cc",
-    "src/trace_processor/fuchsia_provider_view.cc",
-    "src/trace_processor/fuchsia_trace_parser.cc",
-    "src/trace_processor/fuchsia_trace_tokenizer.cc",
-    "src/trace_processor/fuchsia_trace_utils.cc",
-    "src/trace_processor/graphics_event_parser.cc",
-    "src/trace_processor/gzip_trace_parser.cc",
-    "src/trace_processor/heap_graph_tracker.cc",
-    "src/trace_processor/heap_profile_allocation_table.cc",
-    "src/trace_processor/heap_profile_tracker.cc",
-    "src/trace_processor/instants_table.cc",
-    "src/trace_processor/metadata_table.cc",
-    "src/trace_processor/metrics/descriptors.cc",
-    "src/trace_processor/metrics/metrics.cc",
-    "src/trace_processor/process_table.cc",
-    "src/trace_processor/process_tracker.cc",
-    "src/trace_processor/proto_trace_parser.cc",
-    "src/trace_processor/proto_trace_tokenizer.cc",
-    "src/trace_processor/raw_table.cc",
-    "src/trace_processor/row_iterators.cc",
-    "src/trace_processor/sched_slice_table.cc",
-    "src/trace_processor/slice_table.cc",
-    "src/trace_processor/slice_tracker.cc",
-    "src/trace_processor/span_join_operator_table.cc",
-    "src/trace_processor/sql_stats_table.cc",
-    "src/trace_processor/sqlite/db_sqlite_table.cc",
-    "src/trace_processor/sqlite/query_constraints.cc",
-    "src/trace_processor/sqlite/sqlite3_str_split.cc",
-    "src/trace_processor/sqlite/sqlite_table.cc",
-    "src/trace_processor/stack_profile_callsite_table.cc",
-    "src/trace_processor/stack_profile_frame_table.cc",
-    "src/trace_processor/stack_profile_mapping_table.cc",
-    "src/trace_processor/stack_profile_tracker.cc",
-    "src/trace_processor/stats_table.cc",
-    "src/trace_processor/storage_columns.cc",
-    "src/trace_processor/storage_schema.cc",
-    "src/trace_processor/storage_table.cc",
-    "src/trace_processor/string_pool.cc",
-    "src/trace_processor/syscall_tracker.cc",
-    "src/trace_processor/systrace_parser.cc",
-    "src/trace_processor/systrace_trace_parser.cc",
-    "src/trace_processor/thread_table.cc",
-    "src/trace_processor/trace_processor.cc",
-    "src/trace_processor/trace_processor_context.cc",
-    "src/trace_processor/trace_processor_impl.cc",
-    "src/trace_processor/trace_sorter.cc",
-    "src/trace_processor/trace_storage.cc",
-    "src/trace_processor/track_tracker.cc",
-    "src/trace_processor/virtual_destructors.cc",
-    "src/trace_processor/vulkan_memory_tracker.cc",
-    "src/trace_processor/window_operator_table.cc",
-    "tools/trace_to_text/local_symbolizer.cc",
-    "tools/trace_to_text/main.cc",
-    "tools/trace_to_text/pprof_builder.cc",
-    "tools/trace_to_text/proto_full_utils.cc",
-    "tools/trace_to_text/symbolize_profile.cc",
-    "tools/trace_to_text/symbolizer.cc",
-    "tools/trace_to_text/trace_to_profile.cc",
-    "tools/trace_to_text/trace_to_systrace.cc",
-    "tools/trace_to_text/trace_to_text.cc",
-    "tools/trace_to_text/utils.cc",
+    ":perfetto_src_base_base",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_trace_processor_common",
+    ":perfetto_src_trace_processor_db_lib",
+    ":perfetto_src_trace_processor_lib",
+    ":perfetto_src_trace_processor_metrics_lib",
+    ":perfetto_src_trace_processor_sqlite_sqlite",
+    ":perfetto_src_trace_processor_tables_tables",
+    ":perfetto_tools_trace_to_text_common",
+    ":perfetto_tools_trace_to_text_full",
+    ":perfetto_tools_trace_to_text_local_symbolizer",
+    ":perfetto_tools_trace_to_text_pprofbuilder",
+    ":perfetto_tools_trace_to_text_symbolizer",
+    ":perfetto_tools_trace_to_text_utils",
   ],
   shared_libs: [
-    "liblog",
     "libprotobuf-cpp-full",
     "libprotobuf-cpp-lite",
     "libz",
@@ -4997,10 +5230,11 @@
   ],
 }
 
-// GN target: //src/traced/service:traced
+// GN: //src/traced/service:traced
 cc_binary {
   name: "traced",
   srcs: [
+    ":perfetto_include_perfetto_ext_traced_traced",
     "src/traced/service/main.cc",
   ],
   shared_libs: [
@@ -5015,10 +5249,11 @@
   ],
 }
 
-// GN target: //src/traced/probes:traced_probes
+// GN: //src/traced/probes:traced_probes
 cc_binary {
   name: "traced_probes",
   srcs: [
+    ":perfetto_include_perfetto_ext_traced_traced",
     "src/traced/probes/main.cc",
   ],
   shared_libs: [
@@ -5034,10 +5269,19 @@
   ],
 }
 
-// GN target: //src/perfetto_cmd:trigger_perfetto
+// GN: //src/perfetto_cmd:trigger_perfetto
 cc_binary {
   name: "trigger_perfetto",
   srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_traced_traced",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_tracing",
     ":perfetto_protos_perfetto_common_lite_gen",
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_android_lite_gen",
@@ -5076,71 +5320,17 @@
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
     ":perfetto_src_perfetto_cmd_protos_gen",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/pipe.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_socket.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/uuid.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/client_impl.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/host_impl.cc",
-    "src/ipc/service_proxy.cc",
-    "src/ipc/virtual_destructors.cc",
-    "src/perfetto_cmd/trigger_perfetto.cc",
+    ":perfetto_src_perfetto_cmd_trigger_perfetto_cmd",
+    ":perfetto_src_perfetto_cmd_trigger_producer",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_tracing",
     "src/perfetto_cmd/trigger_perfetto_main.cc",
-    "src/perfetto_cmd/trigger_producer.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/tracing/core/chrome_config.cc",
-    "src/tracing/core/commit_data_request.cc",
-    "src/tracing/core/data_source_config.cc",
-    "src/tracing/core/data_source_descriptor.cc",
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/observable_events.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/sliced_protobuf_input_stream.cc",
-    "src/tracing/core/startup_trace_writer.cc",
-    "src/tracing/core/startup_trace_writer_registry.cc",
-    "src/tracing/core/test_config.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/trace_config.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_stats.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-    "src/tracing/core/tracing_service_state.cc",
-    "src/tracing/core/virtual_destructors.cc",
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-    "src/tracing/trace_writer_base.cc",
   ],
   shared_libs: [
     "liblog",