• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("../../gn/perfetto.gni")
16import("../../gn/proto_library.gni")
17import("../../gn/wasm.gni")
18
19# The core source files that are used both by the "full" version (the host
20# executable) and by the "lite" version (the WASM module for the UI).
21source_set("common") {
22  public_deps = [
23    "../../gn:default_deps",
24    "../../include/perfetto/base",
25    "../../include/perfetto/trace_processor:trace_processor",
26    "../../include/perfetto/traced:sys_stats_counters",
27    "../../protos/perfetto/trace:lite",
28    "../../protos/perfetto/trace/ftrace:lite",
29    "../../protos/perfetto/trace/profiling:lite",
30    "../../protos/third_party/pprof:lite",
31    "../../src/base",
32    "../../src/trace_processor:lib",
33  ]
34  sources = [
35    "main.cc",
36    "trace_to_profile.cc",
37    "trace_to_profile.h",
38    "trace_to_systrace.cc",
39    "trace_to_systrace.h",
40    "trace_to_text.h",
41    "utils.cc",
42    "utils.h",
43  ]
44  if (perfetto_build_standalone) {
45    deps = [
46      "../../gn/standalone:gen_git_revision",
47    ]
48  }
49}
50
51# Lite target for the WASM UI. Doesn't have any dependency on libprotobuf-full.
52source_set("lite") {
53  deps = [
54    ":common",
55    "../../gn:default_deps",
56  ]
57  sources = [
58    "lite_fallbacks.cc",
59  ]
60}
61
62# Full traget for the host. Depends on libprotobuf-full.
63source_set("full") {
64  testonly = true
65  deps = [
66    ":common",
67    "../../gn:default_deps",
68    "../../gn:protobuf_full_deps",
69  ]
70  sources = [
71    "proto_full_utils.cc",
72    "proto_full_utils.h",
73    "trace_to_text.cc",
74  ]
75}
76
77if (current_toolchain == host_toolchain) {
78  executable("trace_to_text_host") {
79    testonly = true
80    deps = [
81      ":full",
82      "../../gn:default_deps",
83    ]
84  }
85
86  # WASM is too permissive, build a normal version of the binary to test for
87  # missing symbols.
88  executable("trace_to_text_lite_host") {
89    deps = [
90      ":lite",
91      "../../gn:default_deps",
92    ]
93  }
94}
95
96wasm_lib("trace_to_text_wasm") {
97  name = "trace_to_text"
98  deps = [
99    ":lite",
100    "../../gn:default_deps",
101  ]
102}
103
104# The one for the android tree is defined in the top-level BUILD.gn.
105if (!perfetto_build_with_android) {
106  copy("trace_to_text") {
107    testonly = true
108    host_out_dir_ =
109        get_label_info(":trace_to_text_host($host_toolchain)", "root_out_dir")
110    deps = [
111      ":trace_to_text_host($host_toolchain)",
112    ]
113    sources = [
114      "${host_out_dir_}/trace_to_text_host",
115    ]
116    outputs = [
117      "${root_out_dir}/trace_to_text",
118    ]
119  }
120}
121