xref: /aosp_15_r20/external/perfetto/src/profiling/perf/BUILD.gn (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2019 The Android Open Source Project
2*6dbdd20aSAndroid Build Coastguard Worker#
3*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*6dbdd20aSAndroid Build Coastguard Worker#
7*6dbdd20aSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
8*6dbdd20aSAndroid Build Coastguard Worker#
9*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License.
14*6dbdd20aSAndroid Build Coastguard Worker
15*6dbdd20aSAndroid Build Coastguard Workerimport("../../../gn/fuzzer.gni")
16*6dbdd20aSAndroid Build Coastguard Workerimport("../../../gn/perfetto.gni")
17*6dbdd20aSAndroid Build Coastguard Workerimport("../../../gn/test.gni")
18*6dbdd20aSAndroid Build Coastguard Worker
19*6dbdd20aSAndroid Build Coastguard Workerassert(enable_perfetto_traced_perf)
20*6dbdd20aSAndroid Build Coastguard Worker
21*6dbdd20aSAndroid Build Coastguard Workerexecutable("traced_perf") {
22*6dbdd20aSAndroid Build Coastguard Worker  deps = [
23*6dbdd20aSAndroid Build Coastguard Worker    ":traced_perf_main",
24*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
25*6dbdd20aSAndroid Build Coastguard Worker  ]
26*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "main.cc" ]
27*6dbdd20aSAndroid Build Coastguard Worker}
28*6dbdd20aSAndroid Build Coastguard Worker
29*6dbdd20aSAndroid Build Coastguard Workersource_set("traced_perf_main") {
30*6dbdd20aSAndroid Build Coastguard Worker  deps = [
31*6dbdd20aSAndroid Build Coastguard Worker    ":proc_descriptors",
32*6dbdd20aSAndroid Build Coastguard Worker    ":producer",
33*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
34*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base",
35*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base:version",
36*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/tracing/ipc/producer",
37*6dbdd20aSAndroid Build Coastguard Worker  ]
38*6dbdd20aSAndroid Build Coastguard Worker  sources = [
39*6dbdd20aSAndroid Build Coastguard Worker    "traced_perf.cc",
40*6dbdd20aSAndroid Build Coastguard Worker    "traced_perf.h",
41*6dbdd20aSAndroid Build Coastguard Worker  ]
42*6dbdd20aSAndroid Build Coastguard Worker}
43*6dbdd20aSAndroid Build Coastguard Worker
44*6dbdd20aSAndroid Build Coastguard Workersource_set("producer") {
45*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [
46*6dbdd20aSAndroid Build Coastguard Worker    ":common_types",
47*6dbdd20aSAndroid Build Coastguard Worker    ":regs_parsing",
48*6dbdd20aSAndroid Build Coastguard Worker    ":unwinding",
49*6dbdd20aSAndroid Build Coastguard Worker    "../../../include/perfetto/tracing/core",
50*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/tracing/service",  # for metatrace
51*6dbdd20aSAndroid Build Coastguard Worker  ]
52*6dbdd20aSAndroid Build Coastguard Worker  deps = [
53*6dbdd20aSAndroid Build Coastguard Worker    ":proc_descriptors",
54*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
55*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/common:cpp",
56*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/common:zero",
57*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/config:cpp",
58*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/config/profiling:cpp",
59*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/trace:zero",
60*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/trace/profiling:zero",
61*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base",
62*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base:unix_socket",
63*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/traced/probes/ftrace:ftrace_procfs",
64*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/tracing/ipc/producer",
65*6dbdd20aSAndroid Build Coastguard Worker    "../common:callstack_trie",
66*6dbdd20aSAndroid Build Coastguard Worker    "../common:interner",
67*6dbdd20aSAndroid Build Coastguard Worker    "../common:interning_output",
68*6dbdd20aSAndroid Build Coastguard Worker    "../common:proc_cmdline",
69*6dbdd20aSAndroid Build Coastguard Worker    "../common:producer_support",
70*6dbdd20aSAndroid Build Coastguard Worker    "../common:profiler_guardrails",
71*6dbdd20aSAndroid Build Coastguard Worker  ]
72*6dbdd20aSAndroid Build Coastguard Worker  sources = [
73*6dbdd20aSAndroid Build Coastguard Worker    "event_config.cc",
74*6dbdd20aSAndroid Build Coastguard Worker    "event_config.h",
75*6dbdd20aSAndroid Build Coastguard Worker    "event_reader.cc",
76*6dbdd20aSAndroid Build Coastguard Worker    "event_reader.h",
77*6dbdd20aSAndroid Build Coastguard Worker    "perf_producer.cc",
78*6dbdd20aSAndroid Build Coastguard Worker    "perf_producer.h",
79*6dbdd20aSAndroid Build Coastguard Worker  ]
80*6dbdd20aSAndroid Build Coastguard Worker}
81*6dbdd20aSAndroid Build Coastguard Worker
82*6dbdd20aSAndroid Build Coastguard Workersource_set("common_types") {
83*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [ "../../../gn:libunwindstack" ]
84*6dbdd20aSAndroid Build Coastguard Worker  deps = [
85*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
86*6dbdd20aSAndroid Build Coastguard Worker    "../common:unwind_support",
87*6dbdd20aSAndroid Build Coastguard Worker  ]
88*6dbdd20aSAndroid Build Coastguard Worker  sources = [ "common_types.h" ]
89*6dbdd20aSAndroid Build Coastguard Worker}
90*6dbdd20aSAndroid Build Coastguard Worker
91*6dbdd20aSAndroid Build Coastguard Workersource_set("unwinding") {
92*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [
93*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:libunwindstack",
94*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/tracing/service",  # for metatrace
95*6dbdd20aSAndroid Build Coastguard Worker  ]
96*6dbdd20aSAndroid Build Coastguard Worker  deps = [
97*6dbdd20aSAndroid Build Coastguard Worker    ":common_types",
98*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
99*6dbdd20aSAndroid Build Coastguard Worker    "../../../include/perfetto/ext/tracing/core",
100*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base",
101*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/kallsyms",
102*6dbdd20aSAndroid Build Coastguard Worker    "../common:unwind_support",
103*6dbdd20aSAndroid Build Coastguard Worker  ]
104*6dbdd20aSAndroid Build Coastguard Worker  sources = [
105*6dbdd20aSAndroid Build Coastguard Worker    "frame_pointer_unwinder.cc",
106*6dbdd20aSAndroid Build Coastguard Worker    "frame_pointer_unwinder.h",
107*6dbdd20aSAndroid Build Coastguard Worker    "unwind_queue.h",
108*6dbdd20aSAndroid Build Coastguard Worker    "unwinding.cc",
109*6dbdd20aSAndroid Build Coastguard Worker    "unwinding.h",
110*6dbdd20aSAndroid Build Coastguard Worker  ]
111*6dbdd20aSAndroid Build Coastguard Worker}
112*6dbdd20aSAndroid Build Coastguard Worker
113*6dbdd20aSAndroid Build Coastguard Workersource_set("regs_parsing") {
114*6dbdd20aSAndroid Build Coastguard Worker  public_deps = [ "../../../gn:libunwindstack" ]
115*6dbdd20aSAndroid Build Coastguard Worker  deps = [
116*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:bionic_kernel_uapi_headers",
117*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
118*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base",
119*6dbdd20aSAndroid Build Coastguard Worker  ]
120*6dbdd20aSAndroid Build Coastguard Worker  sources = [
121*6dbdd20aSAndroid Build Coastguard Worker    "regs_parsing.cc",
122*6dbdd20aSAndroid Build Coastguard Worker    "regs_parsing.h",
123*6dbdd20aSAndroid Build Coastguard Worker  ]
124*6dbdd20aSAndroid Build Coastguard Worker}
125*6dbdd20aSAndroid Build Coastguard Worker
126*6dbdd20aSAndroid Build Coastguard Workersource_set("proc_descriptors") {
127*6dbdd20aSAndroid Build Coastguard Worker  deps = [
128*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
129*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/base",
130*6dbdd20aSAndroid Build Coastguard Worker  ]
131*6dbdd20aSAndroid Build Coastguard Worker  sources = [
132*6dbdd20aSAndroid Build Coastguard Worker    "proc_descriptors.cc",
133*6dbdd20aSAndroid Build Coastguard Worker    "proc_descriptors.h",
134*6dbdd20aSAndroid Build Coastguard Worker  ]
135*6dbdd20aSAndroid Build Coastguard Worker}
136*6dbdd20aSAndroid Build Coastguard Worker
137*6dbdd20aSAndroid Build Coastguard Workersource_set("producer_unittests") {
138*6dbdd20aSAndroid Build Coastguard Worker  testonly = true
139*6dbdd20aSAndroid Build Coastguard Worker  deps = [
140*6dbdd20aSAndroid Build Coastguard Worker    ":producer",
141*6dbdd20aSAndroid Build Coastguard Worker    ":unwinding",
142*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:default_deps",
143*6dbdd20aSAndroid Build Coastguard Worker    "../../../gn:gtest_and_gmock",
144*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/common:cpp",
145*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/config:cpp",
146*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/config/profiling:cpp",
147*6dbdd20aSAndroid Build Coastguard Worker    "../../../protos/perfetto/trace:zero",
148*6dbdd20aSAndroid Build Coastguard Worker    "../../../src/protozero",
149*6dbdd20aSAndroid Build Coastguard Worker    "../../base",
150*6dbdd20aSAndroid Build Coastguard Worker  ]
151*6dbdd20aSAndroid Build Coastguard Worker  sources = [
152*6dbdd20aSAndroid Build Coastguard Worker    "event_config_unittest.cc",
153*6dbdd20aSAndroid Build Coastguard Worker    "frame_pointer_unwinder_unittest.cc",
154*6dbdd20aSAndroid Build Coastguard Worker    "perf_producer_unittest.cc",
155*6dbdd20aSAndroid Build Coastguard Worker    "unwind_queue_unittest.cc",
156*6dbdd20aSAndroid Build Coastguard Worker  ]
157*6dbdd20aSAndroid Build Coastguard Worker}
158