1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2017 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/test.gni") 17*6dbdd20aSAndroid Build Coastguard Worker 18*6dbdd20aSAndroid Build Coastguard Workerassert(enable_perfetto_traced_probes) 19*6dbdd20aSAndroid Build Coastguard Worker 20*6dbdd20aSAndroid Build Coastguard Worker# The unprivileged daemon that is allowed to access tracefs (for ftrace). 21*6dbdd20aSAndroid Build Coastguard Worker# Registers as a Producer on the traced daemon. 22*6dbdd20aSAndroid Build Coastguard Workerexecutable("traced_probes") { 23*6dbdd20aSAndroid Build Coastguard Worker deps = [ 24*6dbdd20aSAndroid Build Coastguard Worker "../../../:libperfetto", 25*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 26*6dbdd20aSAndroid Build Coastguard Worker "../../../include/perfetto/ext/traced", 27*6dbdd20aSAndroid Build Coastguard Worker ] 28*6dbdd20aSAndroid Build Coastguard Worker sources = [ "main.cc" ] 29*6dbdd20aSAndroid Build Coastguard Worker assert_no_deps = [ "../../../gn:protobuf_lite" ] 30*6dbdd20aSAndroid Build Coastguard Worker} 31*6dbdd20aSAndroid Build Coastguard Worker 32*6dbdd20aSAndroid Build Coastguard Worker# Contains all the implementation but not the main() entry point. This target 33*6dbdd20aSAndroid Build Coastguard Worker# is shared both by the executable and tests. 34*6dbdd20aSAndroid Build Coastguard Workersource_set("probes") { 35*6dbdd20aSAndroid Build Coastguard Worker public_deps = [ "../../../include/perfetto/ext/traced" ] 36*6dbdd20aSAndroid Build Coastguard Worker deps = [ 37*6dbdd20aSAndroid Build Coastguard Worker ":probes_src", 38*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 39*6dbdd20aSAndroid Build Coastguard Worker "../../base:version", 40*6dbdd20aSAndroid Build Coastguard Worker "../../tracing/ipc/producer", 41*6dbdd20aSAndroid Build Coastguard Worker ] 42*6dbdd20aSAndroid Build Coastguard Worker sources = [ "probes.cc" ] 43*6dbdd20aSAndroid Build Coastguard Worker} 44*6dbdd20aSAndroid Build Coastguard Worker 45*6dbdd20aSAndroid Build Coastguard Workersource_set("probes_src") { 46*6dbdd20aSAndroid Build Coastguard Worker public_deps = [ 47*6dbdd20aSAndroid Build Coastguard Worker "ftrace", 48*6dbdd20aSAndroid Build Coastguard Worker "ftrace:ftrace_procfs", 49*6dbdd20aSAndroid Build Coastguard Worker ] 50*6dbdd20aSAndroid Build Coastguard Worker deps = [ 51*6dbdd20aSAndroid Build Coastguard Worker ":data_source", 52*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 53*6dbdd20aSAndroid Build Coastguard Worker "../../../include/perfetto/ext/traced", 54*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/config/ftrace:cpp", 55*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace:zero", 56*6dbdd20aSAndroid Build Coastguard Worker "../../../protos/perfetto/trace/ps:zero", 57*6dbdd20aSAndroid Build Coastguard Worker "../../../src/kernel_utils:syscall_table", 58*6dbdd20aSAndroid Build Coastguard Worker "../../android_stats", 59*6dbdd20aSAndroid Build Coastguard Worker "../../base", 60*6dbdd20aSAndroid Build Coastguard Worker "../../tracing/core", 61*6dbdd20aSAndroid Build Coastguard Worker "../../tracing/ipc/producer", 62*6dbdd20aSAndroid Build Coastguard Worker "android_game_intervention_list", 63*6dbdd20aSAndroid Build Coastguard Worker "android_log", 64*6dbdd20aSAndroid Build Coastguard Worker "android_system_property", 65*6dbdd20aSAndroid Build Coastguard Worker "common", 66*6dbdd20aSAndroid Build Coastguard Worker "filesystem", 67*6dbdd20aSAndroid Build Coastguard Worker "initial_display_state", 68*6dbdd20aSAndroid Build Coastguard Worker "metatrace", 69*6dbdd20aSAndroid Build Coastguard Worker "packages_list", 70*6dbdd20aSAndroid Build Coastguard Worker "power", 71*6dbdd20aSAndroid Build Coastguard Worker "ps", 72*6dbdd20aSAndroid Build Coastguard Worker "statsd_client", 73*6dbdd20aSAndroid Build Coastguard Worker "sys_stats", 74*6dbdd20aSAndroid Build Coastguard Worker "system_info", 75*6dbdd20aSAndroid Build Coastguard Worker ] 76*6dbdd20aSAndroid Build Coastguard Worker sources = [ 77*6dbdd20aSAndroid Build Coastguard Worker "kmem_activity_trigger.cc", 78*6dbdd20aSAndroid Build Coastguard Worker "kmem_activity_trigger.h", 79*6dbdd20aSAndroid Build Coastguard Worker "probes_producer.cc", 80*6dbdd20aSAndroid Build Coastguard Worker "probes_producer.h", 81*6dbdd20aSAndroid Build Coastguard Worker ] 82*6dbdd20aSAndroid Build Coastguard Worker} 83*6dbdd20aSAndroid Build Coastguard Worker 84*6dbdd20aSAndroid Build Coastguard Worker# Base class for data sources in traced_probes. 85*6dbdd20aSAndroid Build Coastguard Worker# Needs to be a separate target to avoid cyclical deps. 86*6dbdd20aSAndroid Build Coastguard Workersource_set("data_source") { 87*6dbdd20aSAndroid Build Coastguard Worker deps = [ 88*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 89*6dbdd20aSAndroid Build Coastguard Worker "../../tracing/core", 90*6dbdd20aSAndroid Build Coastguard Worker ] 91*6dbdd20aSAndroid Build Coastguard Worker sources = [ 92*6dbdd20aSAndroid Build Coastguard Worker "probes_data_source.cc", 93*6dbdd20aSAndroid Build Coastguard Worker "probes_data_source.h", 94*6dbdd20aSAndroid Build Coastguard Worker ] 95*6dbdd20aSAndroid Build Coastguard Worker} 96*6dbdd20aSAndroid Build Coastguard Worker 97*6dbdd20aSAndroid Build Coastguard Workerperfetto_unittest_source_set("unittests") { 98*6dbdd20aSAndroid Build Coastguard Worker testonly = true 99*6dbdd20aSAndroid Build Coastguard Worker deps = [ 100*6dbdd20aSAndroid Build Coastguard Worker ":probes_src", 101*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:default_deps", 102*6dbdd20aSAndroid Build Coastguard Worker "../../../gn:gtest_and_gmock", 103*6dbdd20aSAndroid Build Coastguard Worker "../../tracing/test:test_support", 104*6dbdd20aSAndroid Build Coastguard Worker "android_game_intervention_list:unittests", 105*6dbdd20aSAndroid Build Coastguard Worker "android_log:unittests", 106*6dbdd20aSAndroid Build Coastguard Worker "android_system_property:unittests", 107*6dbdd20aSAndroid Build Coastguard Worker "common:unittests", 108*6dbdd20aSAndroid Build Coastguard Worker "filesystem:unittests", 109*6dbdd20aSAndroid Build Coastguard Worker "ftrace:unittests", 110*6dbdd20aSAndroid Build Coastguard Worker "initial_display_state:unittests", 111*6dbdd20aSAndroid Build Coastguard Worker "packages_list:unittests", 112*6dbdd20aSAndroid Build Coastguard Worker "power:unittests", 113*6dbdd20aSAndroid Build Coastguard Worker "ps:unittests", 114*6dbdd20aSAndroid Build Coastguard Worker "statsd_client:unittests", 115*6dbdd20aSAndroid Build Coastguard Worker "sys_stats:unittests", 116*6dbdd20aSAndroid Build Coastguard Worker "system_info:unittests", 117*6dbdd20aSAndroid Build Coastguard Worker ] 118*6dbdd20aSAndroid Build Coastguard Worker} 119