Remove libprotobuf from IPC layer
This CL switches the IPC layer to use directly the protozero-based
.gen.{cc,h} classes and stop relying on libprotobuf. After this
CL the traced and traced_probes are fully protobuf-free and the
amalgamated SDK becomes fully hermetic.
There are few dependencies left on libprotobuf outside this,
namely: (1) tests, (2) perefetto cmdline client,
(3) some tools, (4) trace-processor libprotobuf-full
for reflection on metrics .proto files.
This CL:
- Updates the .gen.{cc,h} and .ipc.{cc,h} to take a
wrapper_namespace argument. This makes them consistent
with the protozero plugin.
- Moves all .gen.{cc,h} classes into the ::perfetto::protos::gen
namespace. Update forward_decls.h to alias the old types for
TraceConfig and the like into ::perfetto.
- Updates the sources in the ipc layer to use the moved classes
in the "gen" namespace.
Bug: 132880619
Change-Id: I72a441afe800f1a0ca45dc12ea8029528f5e0aab
diff --git a/BUILD.gn b/BUILD.gn
index 85475a9..5e010cc 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -203,6 +203,7 @@
sources = [
"include/perfetto/tracing.h",
]
+ assert_no_deps = [ "//gn:protobuf_lite" ]
}
}
@@ -233,6 +234,7 @@
"src/tracing:sliced_protobuf_input_stream",
]
}
+ assert_no_deps = [ "//gn:protobuf_lite" ]
if (enable_perfetto_trace_processor_sqlite) {
component("libtrace_processor") {
public_configs = [ "gn:public_config" ]