1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2018 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/perfetto.gni") 16*6dbdd20aSAndroid Build Coastguard Workerimport("../../gn/proto_library.gni") 17*6dbdd20aSAndroid Build Coastguard Workerimport("../../gn/test.gni") 18*6dbdd20aSAndroid Build Coastguard Worker 19*6dbdd20aSAndroid Build Coastguard Worker# The command line client for Perfetto. Allows to configure / start / stop 20*6dbdd20aSAndroid Build Coastguard Worker# tracing, acting as a Consumer. 21*6dbdd20aSAndroid Build Coastguard Workerexecutable("perfetto") { 22*6dbdd20aSAndroid Build Coastguard Worker deps = [ 23*6dbdd20aSAndroid Build Coastguard Worker ":perfetto_cmd", 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 Worker# Tool to finalize long running traces. 30*6dbdd20aSAndroid Build Coastguard Worker# This connects to traced as a producer and sends the triggers passed on the 31*6dbdd20aSAndroid Build Coastguard Worker# commandline. This is a subset of what the perfetto binary can do but we 32*6dbdd20aSAndroid Build Coastguard Worker# need a separate binary for programs that cannot (for good reason) use the 33*6dbdd20aSAndroid Build Coastguard Worker# additional functionality (for example starting traces via consumer socket) 34*6dbdd20aSAndroid Build Coastguard Worker# due to selinux rules. 35*6dbdd20aSAndroid Build Coastguard Workerexecutable("trigger_perfetto") { 36*6dbdd20aSAndroid Build Coastguard Worker deps = [ 37*6dbdd20aSAndroid Build Coastguard Worker ":trigger_perfetto_cmd", 38*6dbdd20aSAndroid Build Coastguard Worker "../../gn:default_deps", 39*6dbdd20aSAndroid Build Coastguard Worker ] 40*6dbdd20aSAndroid Build Coastguard Worker sources = [ "trigger_perfetto_main.cc" ] 41*6dbdd20aSAndroid Build Coastguard Worker} 42*6dbdd20aSAndroid Build Coastguard Worker 43*6dbdd20aSAndroid Build Coastguard Worker# Contains all the implementation but not the main() entry point. This target 44*6dbdd20aSAndroid Build Coastguard Worker# is shared both by the executable and tests. 45*6dbdd20aSAndroid Build Coastguard Workersource_set("perfetto_cmd") { 46*6dbdd20aSAndroid Build Coastguard Worker public_deps = [ 47*6dbdd20aSAndroid Build Coastguard Worker ":protos_cpp", 48*6dbdd20aSAndroid Build Coastguard Worker "../../include/perfetto/ext/traced", 49*6dbdd20aSAndroid Build Coastguard Worker ] 50*6dbdd20aSAndroid Build Coastguard Worker deps = [ 51*6dbdd20aSAndroid Build Coastguard Worker ":bugreport_path", 52*6dbdd20aSAndroid Build Coastguard Worker ":trigger_producer", 53*6dbdd20aSAndroid Build Coastguard Worker "../../gn:default_deps", 54*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/common:cpp", 55*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/config:cpp", 56*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/config/ftrace:cpp", 57*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/config/sys_stats:cpp", 58*6dbdd20aSAndroid Build Coastguard Worker "../android_stats", 59*6dbdd20aSAndroid Build Coastguard Worker "../base", 60*6dbdd20aSAndroid Build Coastguard Worker "../base:version", 61*6dbdd20aSAndroid Build Coastguard Worker "../protozero", 62*6dbdd20aSAndroid Build Coastguard Worker "../trace_config_utils:txt_to_pb", 63*6dbdd20aSAndroid Build Coastguard Worker "../tracing/ipc/consumer", 64*6dbdd20aSAndroid Build Coastguard Worker ] 65*6dbdd20aSAndroid Build Coastguard Worker sources = [ 66*6dbdd20aSAndroid Build Coastguard Worker "config.cc", 67*6dbdd20aSAndroid Build Coastguard Worker "config.h", 68*6dbdd20aSAndroid Build Coastguard Worker "packet_writer.cc", 69*6dbdd20aSAndroid Build Coastguard Worker "packet_writer.h", 70*6dbdd20aSAndroid Build Coastguard Worker "perfetto_cmd.cc", 71*6dbdd20aSAndroid Build Coastguard Worker "perfetto_cmd.h", 72*6dbdd20aSAndroid Build Coastguard Worker ] 73*6dbdd20aSAndroid Build Coastguard Worker assert_no_deps = [ "../trace_processor/*" ] 74*6dbdd20aSAndroid Build Coastguard Worker 75*6dbdd20aSAndroid Build Coastguard Worker if (is_android) { 76*6dbdd20aSAndroid Build Coastguard Worker deps += [ "../android_internal:lazy_library_loader" ] 77*6dbdd20aSAndroid Build Coastguard Worker sources += [ "perfetto_cmd_android.cc" ] 78*6dbdd20aSAndroid Build Coastguard Worker } 79*6dbdd20aSAndroid Build Coastguard Worker} 80*6dbdd20aSAndroid Build Coastguard Worker 81*6dbdd20aSAndroid Build Coastguard Workersource_set("bugreport_path") { 82*6dbdd20aSAndroid Build Coastguard Worker sources = [ "bugreport_path.h" ] 83*6dbdd20aSAndroid Build Coastguard Worker deps = [ "../../gn:default_deps" ] 84*6dbdd20aSAndroid Build Coastguard Worker public_deps = [ 85*6dbdd20aSAndroid Build Coastguard Worker "../../include/perfetto/base", 86*6dbdd20aSAndroid Build Coastguard Worker "../../include/perfetto/ext/base", 87*6dbdd20aSAndroid Build Coastguard Worker ] 88*6dbdd20aSAndroid Build Coastguard Worker} 89*6dbdd20aSAndroid Build Coastguard Worker 90*6dbdd20aSAndroid Build Coastguard Workersource_set("trigger_perfetto_cmd") { 91*6dbdd20aSAndroid Build Coastguard Worker public_deps = [ 92*6dbdd20aSAndroid Build Coastguard Worker ":protos_cpp", 93*6dbdd20aSAndroid Build Coastguard Worker "../../include/perfetto/ext/traced", 94*6dbdd20aSAndroid Build Coastguard Worker ] 95*6dbdd20aSAndroid Build Coastguard Worker deps = [ 96*6dbdd20aSAndroid Build Coastguard Worker ":trigger_producer", 97*6dbdd20aSAndroid Build Coastguard Worker "../../gn:default_deps", 98*6dbdd20aSAndroid Build Coastguard Worker "../android_stats", 99*6dbdd20aSAndroid Build Coastguard Worker "../base", 100*6dbdd20aSAndroid Build Coastguard Worker "../tracing/ipc/producer", 101*6dbdd20aSAndroid Build Coastguard Worker ] 102*6dbdd20aSAndroid Build Coastguard Worker sources = [ "trigger_perfetto.cc" ] 103*6dbdd20aSAndroid Build Coastguard Worker} 104*6dbdd20aSAndroid Build Coastguard Worker 105*6dbdd20aSAndroid Build Coastguard Workersource_set("trigger_producer") { 106*6dbdd20aSAndroid Build Coastguard Worker sources = [ 107*6dbdd20aSAndroid Build Coastguard Worker "trigger_producer.cc", 108*6dbdd20aSAndroid Build Coastguard Worker "trigger_producer.h", 109*6dbdd20aSAndroid Build Coastguard Worker ] 110*6dbdd20aSAndroid Build Coastguard Worker deps = [ 111*6dbdd20aSAndroid Build Coastguard Worker "../../gn:default_deps", 112*6dbdd20aSAndroid Build Coastguard Worker "../base", 113*6dbdd20aSAndroid Build Coastguard Worker "../tracing/ipc/producer", 114*6dbdd20aSAndroid Build Coastguard Worker ] 115*6dbdd20aSAndroid Build Coastguard Worker} 116*6dbdd20aSAndroid Build Coastguard Worker 117*6dbdd20aSAndroid Build Coastguard Workerperfetto_proto_library("protos_@TYPE@") { 118*6dbdd20aSAndroid Build Coastguard Worker proto_generators = [ "cpp" ] 119*6dbdd20aSAndroid Build Coastguard Worker sources = [ "perfetto_cmd_state.proto" ] 120*6dbdd20aSAndroid Build Coastguard Worker proto_path = perfetto_root_path 121*6dbdd20aSAndroid Build Coastguard Worker} 122*6dbdd20aSAndroid Build Coastguard Worker 123*6dbdd20aSAndroid Build Coastguard Workerperfetto_unittest_source_set("unittests") { 124*6dbdd20aSAndroid Build Coastguard Worker testonly = true 125*6dbdd20aSAndroid Build Coastguard Worker public_deps = [] 126*6dbdd20aSAndroid Build Coastguard Worker deps = [ 127*6dbdd20aSAndroid Build Coastguard Worker ":perfetto_cmd", 128*6dbdd20aSAndroid Build Coastguard Worker "../../gn:default_deps", 129*6dbdd20aSAndroid Build Coastguard Worker "../../gn:gtest_and_gmock", 130*6dbdd20aSAndroid Build Coastguard Worker "../../include/perfetto/base", 131*6dbdd20aSAndroid Build Coastguard Worker "../../include/perfetto/ext/base", 132*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/config:cpp", 133*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/config/ftrace:cpp", 134*6dbdd20aSAndroid Build Coastguard Worker "../../protos/perfetto/trace:cpp", 135*6dbdd20aSAndroid Build Coastguard Worker "../tracing/core", 136*6dbdd20aSAndroid Build Coastguard Worker ] 137*6dbdd20aSAndroid Build Coastguard Worker sources = [ 138*6dbdd20aSAndroid Build Coastguard Worker "config_unittest.cc", 139*6dbdd20aSAndroid Build Coastguard Worker "packet_writer_unittest.cc", 140*6dbdd20aSAndroid Build Coastguard Worker ] 141*6dbdd20aSAndroid Build Coastguard Worker} 142