blob: 6465bffb16f88d07bfe5c18d81d3671ec4d45257 [file] [log] [blame]
# Copyright (C) 2019 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/fuzzer.gni")
import("../../../gn/perfetto.gni")
import("../../../gn/test.gni")
assert(enable_perfetto_traced_perf)
executable("traced_perf") {
deps = [
":traced_perf_main",
"../../../gn:default_deps",
]
sources = [ "main.cc" ]
}
source_set("traced_perf_main") {
deps = [
":proc_descriptors",
":producer",
"../../../gn:default_deps",
"../../../src/base",
"../../../src/base:version",
"../../../src/tracing/ipc/producer",
]
sources = [
"traced_perf.cc",
"traced_perf.h",
]
}
source_set("producer") {
public_deps = [
":common_types",
":regs_parsing",
":unwinding",
"../../../include/perfetto/tracing/core",
"../../../src/tracing/service", # for metatrace
]
deps = [
":proc_descriptors",
"../../../gn:default_deps",
"../../../protos/perfetto/common:cpp",
"../../../protos/perfetto/common:zero",
"../../../protos/perfetto/config:cpp",
"../../../protos/perfetto/config/profiling:cpp",
"../../../protos/perfetto/trace:zero",
"../../../protos/perfetto/trace/profiling:zero",
"../../../src/base",
"../../../src/base:unix_socket",
"../../../src/traced/probes/ftrace:ftrace_procfs",
"../../../src/tracing/ipc/producer",
"../common:callstack_trie",
"../common:interner",
"../common:interning_output",
"../common:proc_cmdline",
"../common:producer_support",
"../common:profiler_guardrails",
]
sources = [
"event_config.cc",
"event_config.h",
"event_reader.cc",
"event_reader.h",
"perf_producer.cc",
"perf_producer.h",
]
}
source_set("common_types") {
public_deps = [ "../../../gn:libunwindstack" ]
deps = [
"../../../gn:default_deps",
"../common:unwind_support",
]
sources = [ "common_types.h" ]
}
source_set("unwinding") {
public_deps = [
"../../../gn:libunwindstack",
"../../../src/tracing/service", # for metatrace
]
deps = [
":common_types",
"../../../gn:default_deps",
"../../../include/perfetto/ext/tracing/core",
"../../../src/base",
"../../../src/kallsyms",
"../common:unwind_support",
]
sources = [
"frame_pointer_unwinder.cc",
"frame_pointer_unwinder.h",
"unwind_queue.h",
"unwinding.cc",
"unwinding.h",
]
}
source_set("regs_parsing") {
public_deps = [ "../../../gn:libunwindstack" ]
deps = [
"../../../gn:bionic_kernel_uapi_headers",
"../../../gn:default_deps",
"../../../src/base",
]
sources = [
"regs_parsing.cc",
"regs_parsing.h",
]
}
source_set("proc_descriptors") {
deps = [
"../../../gn:default_deps",
"../../../src/base",
]
sources = [
"proc_descriptors.cc",
"proc_descriptors.h",
]
}
source_set("producer_unittests") {
testonly = true
deps = [
":producer",
":unwinding",
"../../../gn:default_deps",
"../../../gn:gtest_and_gmock",
"../../../protos/perfetto/common:cpp",
"../../../protos/perfetto/config:cpp",
"../../../protos/perfetto/config/profiling:cpp",
"../../../protos/perfetto/trace:zero",
"../../../src/protozero",
"../../base",
]
sources = [
"event_config_unittest.cc",
"frame_pointer_unwinder_unittest.cc",
"perf_producer_unittest.cc",
"unwind_queue_unittest.cc",
]
}