| # Copyright (C) 2018 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. | 
 |  | 
 | import("../../gn/perfetto.gni") | 
 | import("../../gn/wasm.gni") | 
 |  | 
 | wasm_lib("trace_processor_wasm") { | 
 |   name = "trace_processor" | 
 |   sources = [ | 
 |     "wasm_bridge.cc", | 
 |   ] | 
 |  | 
 |   # All the deps below are implicitly xxx($wasm_toolchain) because of the | 
 |   # outer "is_wasm" block. | 
 |   deps = [ | 
 |     ":lib", | 
 |     "../../buildtools:sqlite", | 
 |     "../../gn:default_deps", | 
 |     "../../include/perfetto/base", | 
 |     "../../protos/perfetto/trace_processor:lite", | 
 |   ] | 
 | } | 
 |  | 
 | # The library which eases processing of Perfetto traces by exposing reading | 
 | # friendly APIs. | 
 | static_library("trace_processor") { | 
 |   deps = [ | 
 |     ":lib", | 
 |   ] | 
 | } | 
 |  | 
 | source_set("lib") { | 
 |   sources = [ | 
 |     "chunked_trace_reader.h", | 
 |     "counters_table.cc", | 
 |     "counters_table.h", | 
 |     "event_tracker.cc", | 
 |     "event_tracker.h", | 
 |     "instants_table.cc", | 
 |     "instants_table.h", | 
 |     "process_table.cc", | 
 |     "process_table.h", | 
 |     "process_tracker.cc", | 
 |     "process_tracker.h", | 
 |     "proto_trace_parser.cc", | 
 |     "proto_trace_parser.h", | 
 |     "proto_trace_tokenizer.cc", | 
 |     "proto_trace_tokenizer.h", | 
 |     "query_constraints.cc", | 
 |     "query_constraints.h", | 
 |     "row_iterators.cc", | 
 |     "row_iterators.h", | 
 |     "sched_slice_table.cc", | 
 |     "sched_slice_table.h", | 
 |     "scoped_db.h", | 
 |     "slice_table.cc", | 
 |     "slice_table.h", | 
 |     "slice_tracker.cc", | 
 |     "slice_tracker.h", | 
 |     "span_join_operator_table.cc", | 
 |     "span_join_operator_table.h", | 
 |     "sql_stats_table.cc", | 
 |     "sql_stats_table.h", | 
 |     "sqlite_utils.h", | 
 |     "storage_cursor.cc", | 
 |     "storage_cursor.h", | 
 |     "storage_schema.cc", | 
 |     "storage_schema.h", | 
 |     "string_table.cc", | 
 |     "string_table.h", | 
 |     "table.cc", | 
 |     "table.h", | 
 |     "table_utils.h", | 
 |     "thread_table.cc", | 
 |     "thread_table.h", | 
 |     "trace_blob_view.h", | 
 |     "trace_processor.cc", | 
 |     "trace_processor_context.cc", | 
 |     "trace_processor_context.h", | 
 |     "trace_processor_impl.cc", | 
 |     "trace_processor_impl.h", | 
 |     "trace_sorter.cc", | 
 |     "trace_sorter.h", | 
 |     "trace_storage.cc", | 
 |     "trace_storage.h", | 
 |     "virtual_destructors.cc", | 
 |     "window_operator_table.cc", | 
 |     "window_operator_table.h", | 
 |   ] | 
 |   deps = [ | 
 |     "../../buildtools:sqlite", | 
 |     "../../gn:default_deps", | 
 |     "../../include/perfetto/traced:sys_stats_counters", | 
 |     "../../protos/perfetto/trace:lite", | 
 |     "../../protos/perfetto/trace_processor:lite", | 
 |     "../base", | 
 |     "../protozero", | 
 |   ] | 
 |   public_deps = [ | 
 |     "../../include/perfetto/trace_processor", | 
 |   ] | 
 |   if (perfetto_build_standalone) { | 
 |     sources += [ | 
 |       "json_trace_parser.cc", | 
 |       "json_trace_parser.h", | 
 |     ] | 
 |     deps += [ "../../gn:jsoncpp_deps" ] | 
 |   } | 
 | } | 
 |  | 
 | if (current_toolchain == host_toolchain) { | 
 |   executable("trace_processor_shell_host") { | 
 |     deps = [ | 
 |       ":lib", | 
 |       "../../gn:default_deps", | 
 |       "../../protos/perfetto/trace_processor:lite", | 
 |       "../base", | 
 |     ] | 
 |     if (perfetto_build_standalone) { | 
 |       deps += [ "../../buildtools:linenoise" ] | 
 |     } | 
 |     sources = [ | 
 |       "trace_processor_shell.cc", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | copy("trace_processor_shell") { | 
 |   host_out_dir_ = get_label_info(":trace_processor_shell_host($host_toolchain)", | 
 |                                  "root_out_dir") | 
 |   deps = [ | 
 |     ":trace_processor_shell_host($host_toolchain)", | 
 |   ] | 
 |   sources = [ | 
 |     "${host_out_dir_}/trace_processor_shell_host", | 
 |   ] | 
 |   outputs = [ | 
 |     "${root_out_dir}/trace_processor_shell", | 
 |   ] | 
 | } | 
 |  | 
 | source_set("unittests") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "counters_table_unittest.cc", | 
 |     "event_tracker_unittest.cc", | 
 |     "process_table_unittest.cc", | 
 |     "process_tracker_unittest.cc", | 
 |     "proto_trace_parser_unittest.cc", | 
 |     "query_constraints_unittest.cc", | 
 |     "sched_slice_table_unittest.cc", | 
 |     "slice_tracker_unittest.cc", | 
 |     "span_join_operator_table_unittest.cc", | 
 |     "thread_table_unittest.cc", | 
 |     "trace_processor_impl_unittest.cc", | 
 |     "trace_sorter_unittest.cc", | 
 |   ] | 
 |   deps = [ | 
 |     ":lib", | 
 |     "../../buildtools:sqlite", | 
 |     "../../gn:default_deps", | 
 |     "../../gn:gtest_deps", | 
 |     "../../protos/perfetto/trace:lite", | 
 |     "../base", | 
 |   ] | 
 | } | 
 |  | 
 | source_set("integrationtests") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "trace_database_integrationtest.cc", | 
 |   ] | 
 |   deps = [ | 
 |     ":lib", | 
 |     "../../buildtools:sqlite", | 
 |     "../../gn:default_deps", | 
 |     "../../gn:gtest_deps", | 
 |     "../../protos/perfetto/trace:lite", | 
 |     "../../protos/perfetto/trace_processor:lite", | 
 |     "../base", | 
 |     "../base:test_support", | 
 |   ] | 
 | } |