tp: move ninja log parsing into lib target
Bug: crbug/1373719
Change-Id: I8891d076bdbfa227d85153d23c5e2166d5394312
diff --git a/Android.bp b/Android.bp
index eeed817..1aad826 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1976,6 +1976,7 @@
":perfetto_src_trace_processor_importers_fuchsia_fuchsia_record",
":perfetto_src_trace_processor_importers_importers_full",
":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+ ":perfetto_src_trace_processor_importers_ninja_ninja",
":perfetto_src_trace_processor_importers_proto_full",
":perfetto_src_trace_processor_importers_proto_minimal",
":perfetto_src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
@@ -9311,6 +9312,14 @@
],
}
+// GN: //src/trace_processor/importers/ninja:ninja
+filegroup {
+ name: "perfetto_src_trace_processor_importers_ninja_ninja",
+ srcs: [
+ "src/trace_processor/importers/ninja/ninja_log_parser.cc",
+ ],
+}
+
// GN: //src/trace_processor/importers/proto:full
filegroup {
name: "perfetto_src_trace_processor_importers_proto_full",
@@ -9730,7 +9739,6 @@
"src/trace_processor/importers/default_modules.cc",
"src/trace_processor/importers/ftrace/ftrace_module.cc",
"src/trace_processor/importers/json/json_utils.cc",
- "src/trace_processor/importers/ninja/ninja_log_parser.cc",
"src/trace_processor/importers/proto/android_camera_event_module.cc",
"src/trace_processor/importers/proto/chrome_system_probes_module.cc",
"src/trace_processor/importers/proto/chrome_system_probes_parser.cc",
@@ -11233,6 +11241,7 @@
":perfetto_src_trace_processor_importers_fuchsia_fuchsia_record",
":perfetto_src_trace_processor_importers_importers_full",
":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+ ":perfetto_src_trace_processor_importers_ninja_ninja",
":perfetto_src_trace_processor_importers_proto_full",
":perfetto_src_trace_processor_importers_proto_minimal",
":perfetto_src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
@@ -11880,6 +11889,7 @@
":perfetto_src_trace_processor_importers_fuchsia_fuchsia_record",
":perfetto_src_trace_processor_importers_importers_full",
":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+ ":perfetto_src_trace_processor_importers_ninja_ninja",
":perfetto_src_trace_processor_importers_proto_full",
":perfetto_src_trace_processor_importers_proto_minimal",
":perfetto_src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
@@ -12078,6 +12088,7 @@
":perfetto_src_trace_processor_importers_fuchsia_fuchsia_record",
":perfetto_src_trace_processor_importers_importers_full",
":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+ ":perfetto_src_trace_processor_importers_ninja_ninja",
":perfetto_src_trace_processor_importers_proto_full",
":perfetto_src_trace_processor_importers_proto_minimal",
":perfetto_src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
diff --git a/BUILD b/BUILD
index 23e2d94..943df9d 100644
--- a/BUILD
+++ b/BUILD
@@ -1160,6 +1160,15 @@
],
)
+# GN target: //src/trace_processor/importers/ninja:ninja
+perfetto_filegroup(
+ name = "src_trace_processor_importers_ninja_ninja",
+ srcs = [
+ "src/trace_processor/importers/ninja/ninja_log_parser.cc",
+ "src/trace_processor/importers/ninja/ninja_log_parser.h",
+ ],
+)
+
# GN target: //src/trace_processor/importers/proto:full
perfetto_filegroup(
name = "src_trace_processor_importers_proto_full",
@@ -1963,8 +1972,6 @@
"src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h",
"src/trace_processor/importers/json/json_utils.cc",
"src/trace_processor/importers/json/json_utils.h",
- "src/trace_processor/importers/ninja/ninja_log_parser.cc",
- "src/trace_processor/importers/ninja/ninja_log_parser.h",
"src/trace_processor/importers/proto/android_camera_event_module.cc",
"src/trace_processor/importers/proto/android_camera_event_module.h",
"src/trace_processor/importers/proto/chrome_system_probes_module.cc",
@@ -4396,6 +4403,7 @@
":src_trace_processor_importers_fuchsia_fuchsia_record",
":src_trace_processor_importers_importers_full",
":src_trace_processor_importers_memory_tracker_graph_processor",
+ ":src_trace_processor_importers_ninja_ninja",
":src_trace_processor_importers_proto_full",
":src_trace_processor_importers_proto_minimal",
":src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
@@ -4530,6 +4538,7 @@
":src_trace_processor_importers_fuchsia_fuchsia_record",
":src_trace_processor_importers_importers_full",
":src_trace_processor_importers_memory_tracker_graph_processor",
+ ":src_trace_processor_importers_ninja_ninja",
":src_trace_processor_importers_proto_full",
":src_trace_processor_importers_proto_minimal",
":src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
@@ -4723,6 +4732,7 @@
":src_trace_processor_importers_fuchsia_fuchsia_record",
":src_trace_processor_importers_importers_full",
":src_trace_processor_importers_memory_tracker_graph_processor",
+ ":src_trace_processor_importers_ninja_ninja",
":src_trace_processor_importers_proto_full",
":src_trace_processor_importers_proto_minimal",
":src_trace_processor_importers_proto_packet_sequence_state_generation_hdr",
diff --git a/src/trace_processor/BUILD.gn b/src/trace_processor/BUILD.gn
index 12d484a..95d1bf6 100644
--- a/src/trace_processor/BUILD.gn
+++ b/src/trace_processor/BUILD.gn
@@ -103,8 +103,6 @@
"importers/fuchsia/fuchsia_trace_utils.h",
"importers/json/json_utils.cc",
"importers/json/json_utils.h",
- "importers/ninja/ninja_log_parser.cc",
- "importers/ninja/ninja_log_parser.h",
"importers/proto/android_camera_event_module.cc",
"importers/proto/android_camera_event_module.h",
"importers/proto/chrome_system_probes_module.cc",
@@ -242,6 +240,7 @@
"importers:importers_full",
"importers/android_bugreport",
"importers/common",
+ "importers/ninja",
"metrics",
"sqlite",
"sqlite/functions",
diff --git a/src/trace_processor/forwarding_trace_parser.cc b/src/trace_processor/forwarding_trace_parser.cc
index d8ce547..0cccce2 100644
--- a/src/trace_processor/forwarding_trace_parser.cc
+++ b/src/trace_processor/forwarding_trace_parser.cc
@@ -19,7 +19,6 @@
#include "perfetto/base/logging.h"
#include "perfetto/ext/base/string_utils.h"
#include "src/trace_processor/importers/common/process_tracker.h"
-#include "src/trace_processor/importers/ninja/ninja_log_parser.h"
#include "src/trace_processor/importers/proto/proto_trace_parser.h"
#include "src/trace_processor/importers/proto/proto_trace_reader.h"
#include "src/trace_processor/sorter/trace_sorter.h"
@@ -101,8 +100,11 @@
}
case kNinjaLogTraceType: {
PERFETTO_DLOG("Ninja log detected");
- reader_.reset(new NinjaLogParser(context_));
- break;
+ if (context_->ninja_log_parser) {
+ reader_ = std::move(context_->ninja_log_parser);
+ break;
+ }
+ return util::ErrStatus("Ninja support is disabled");
}
case kFuchsiaTraceType: {
PERFETTO_DLOG("Fuchsia trace detected");
diff --git a/src/trace_processor/importers/ninja/BUILD.gn b/src/trace_processor/importers/ninja/BUILD.gn
new file mode 100644
index 0000000..f64cf41
--- /dev/null
+++ b/src/trace_processor/importers/ninja/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright (C) 2022 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+source_set("ninja") {
+ sources = [
+ "ninja_log_parser.cc",
+ "ninja_log_parser.h",
+ ]
+ deps = [
+ "../../../../gn:default_deps",
+ "../../importers/common",
+ "../../sorter",
+ "../../storage",
+ ]
+}
diff --git a/src/trace_processor/trace_processor_impl.cc b/src/trace_processor/trace_processor_impl.cc
index 37a447a..871eb52 100644
--- a/src/trace_processor/trace_processor_impl.cc
+++ b/src/trace_processor/trace_processor_impl.cc
@@ -49,6 +49,7 @@
#include "src/trace_processor/importers/gzip/gzip_trace_parser.h"
#include "src/trace_processor/importers/json/json_trace_parser.h"
#include "src/trace_processor/importers/json/json_trace_tokenizer.h"
+#include "src/trace_processor/importers/ninja/ninja_log_parser.h"
#include "src/trace_processor/importers/proto/metadata_tracker.h"
#include "src/trace_processor/importers/systrace/systrace_trace_parser.h"
#include "src/trace_processor/iterator_impl.h"
@@ -681,6 +682,8 @@
context_.fuchsia_trace_tokenizer.reset(new FuchsiaTraceTokenizer(&context_));
context_.fuchsia_trace_parser.reset(new FuchsiaTraceParser(&context_));
+ context_.ninja_log_parser.reset(new NinjaLogParser(&context_));
+
context_.systrace_trace_parser.reset(new SystraceTraceParser(&context_));
if (util::IsGzipSupported()) {
diff --git a/src/trace_processor/types/trace_processor_context.h b/src/trace_processor/types/trace_processor_context.h
index db5efaf..e28a9d5 100644
--- a/src/trace_processor/types/trace_processor_context.h
+++ b/src/trace_processor/types/trace_processor_context.h
@@ -120,16 +120,17 @@
// These fields are trace readers which will be called by |forwarding_parser|
// once the format of the trace is discovered. They are placed here as they
- // are only available in the storage_full target.
+ // are only available in the lib target.
std::unique_ptr<ChunkedTraceReader> json_trace_tokenizer;
std::unique_ptr<ChunkedTraceReader> fuchsia_trace_tokenizer;
+ std::unique_ptr<ChunkedTraceReader> ninja_log_parser;
std::unique_ptr<ChunkedTraceReader> android_bugreport_parser;
std::unique_ptr<ChunkedTraceReader> systrace_trace_parser;
std::unique_ptr<ChunkedTraceReader> gzip_trace_parser;
// These fields are trace parsers which will be called by |forwarding_parser|
// once the format of the trace is discovered. They are placed here as they
- // are only available in the storage_full target.
+ // are only available in the lib target.
std::unique_ptr<TraceParser> json_trace_parser;
std::unique_ptr<TraceParser> fuchsia_trace_parser;