| # Copyright (C) 2017 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/proto_library.gni") | 
 | import("../../gn/wasm.gni") | 
 |  | 
 | # The core source files that are used both by the "full" version (the host | 
 | # executable) and by the "lite" version (the WASM module for the UI). | 
 | source_set("common") { | 
 |   public_deps = [ | 
 |     "../../gn:default_deps", | 
 |     "../../include/perfetto/base", | 
 |     "../../include/perfetto/traced:sys_stats_counters", | 
 |     "../../protos/perfetto/trace:lite", | 
 |     "../../protos/perfetto/trace/ftrace:lite", | 
 |     "../../protos/perfetto/trace/profiling:lite", | 
 |     "../../protos/third_party/pprof:lite", | 
 |     "../../src/base", | 
 |   ] | 
 |   sources = [ | 
 |     "ftrace_event_formatter.cc", | 
 |     "ftrace_event_formatter.h", | 
 |     "ftrace_inode_handler.cc", | 
 |     "ftrace_inode_handler.h", | 
 |     "main.cc", | 
 |     "process_formatter.h", | 
 |     "trace_to_profile.cc", | 
 |     "trace_to_profile.h", | 
 |     "trace_to_systrace.cc", | 
 |     "trace_to_systrace.h", | 
 |     "trace_to_text.h", | 
 |     "utils.cc", | 
 |     "utils.h", | 
 |   ] | 
 | } | 
 |  | 
 | # Lite target for the WASM UI. Doesn't have any dependency on libprotobuf-full. | 
 | source_set("lite") { | 
 |   deps = [ | 
 |     ":common", | 
 |     "../../gn:default_deps", | 
 |   ] | 
 |   sources = [ | 
 |     "lite_fallbacks.cc", | 
 |   ] | 
 | } | 
 |  | 
 | # Full traget for the host. Depends on libprotobuf-full. | 
 | source_set("full") { | 
 |   testonly = true | 
 |   deps = [ | 
 |     ":common", | 
 |     "../../gn:default_deps", | 
 |     "../../gn:protobuf_full_deps", | 
 |   ] | 
 |   sources = [ | 
 |     "proto_full_utils.cc", | 
 |     "proto_full_utils.h", | 
 |     "trace_to_text.cc", | 
 |   ] | 
 | } | 
 |  | 
 | if (current_toolchain == host_toolchain) { | 
 |   executable("trace_to_text_host") { | 
 |     testonly = true | 
 |     deps = [ | 
 |       ":full", | 
 |       "../../gn:default_deps", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | wasm_lib("trace_to_text_wasm") { | 
 |   name = "trace_to_text" | 
 |   deps = [ | 
 |     ":lite", | 
 |     "../../gn:default_deps", | 
 |   ] | 
 | } | 
 |  | 
 | # The one for the android tree is defined in the top-level BUILD.gn. | 
 | if (!perfetto_build_with_android) { | 
 |   copy("trace_to_text") { | 
 |     testonly = true | 
 |     host_out_dir_ = | 
 |         get_label_info(":trace_to_text_host($host_toolchain)", "root_out_dir") | 
 |     deps = [ | 
 |       ":trace_to_text_host($host_toolchain)", | 
 |     ] | 
 |     sources = [ | 
 |       "${host_out_dir_}/trace_to_text_host", | 
 |     ] | 
 |     outputs = [ | 
 |       "${root_out_dir}/trace_to_text", | 
 |     ] | 
 |   } | 
 | } |