1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2022 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("perfetto.gni") 16*6dbdd20aSAndroid Build Coastguard Worker 17*6dbdd20aSAndroid Build Coastguard Workertemplate("perfetto_py_library") { 18*6dbdd20aSAndroid Build Coastguard Worker action(target_name) { 19*6dbdd20aSAndroid Build Coastguard Worker forward_variables_from(invoker, [ "deps" ]) 20*6dbdd20aSAndroid Build Coastguard Worker 21*6dbdd20aSAndroid Build Coastguard Worker data = [] 22*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.data)) { 23*6dbdd20aSAndroid Build Coastguard Worker data += invoker.data 24*6dbdd20aSAndroid Build Coastguard Worker } 25*6dbdd20aSAndroid Build Coastguard Worker 26*6dbdd20aSAndroid Build Coastguard Worker out_path = "$target_gen_dir/" + target_name 27*6dbdd20aSAndroid Build Coastguard Worker rebased_out_path = 28*6dbdd20aSAndroid Build Coastguard Worker rebase_path(target_gen_dir, root_build_dir) + "/" + target_name 29*6dbdd20aSAndroid Build Coastguard Worker 30*6dbdd20aSAndroid Build Coastguard Worker sources = [] 31*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.sources)) { 32*6dbdd20aSAndroid Build Coastguard Worker sources += invoker.sources 33*6dbdd20aSAndroid Build Coastguard Worker } 34*6dbdd20aSAndroid Build Coastguard Worker script = "$perfetto_root_path/tools/touch_file.py" 35*6dbdd20aSAndroid Build Coastguard Worker args = [ 36*6dbdd20aSAndroid Build Coastguard Worker "--output", 37*6dbdd20aSAndroid Build Coastguard Worker rebased_out_path, 38*6dbdd20aSAndroid Build Coastguard Worker ] 39*6dbdd20aSAndroid Build Coastguard Worker outputs = [ out_path ] 40*6dbdd20aSAndroid Build Coastguard Worker metadata = { 41*6dbdd20aSAndroid Build Coastguard Worker perfetto_action_type_for_generator = [ "python_library" ] 42*6dbdd20aSAndroid Build Coastguard Worker perfetto_data = data 43*6dbdd20aSAndroid Build Coastguard Worker } 44*6dbdd20aSAndroid Build Coastguard Worker } 45*6dbdd20aSAndroid Build Coastguard Worker} 46*6dbdd20aSAndroid Build Coastguard Worker 47*6dbdd20aSAndroid Build Coastguard Workertemplate("perfetto_py_binary") { 48*6dbdd20aSAndroid Build Coastguard Worker action(target_name) { 49*6dbdd20aSAndroid Build Coastguard Worker forward_variables_from(invoker, [ "deps" ]) 50*6dbdd20aSAndroid Build Coastguard Worker 51*6dbdd20aSAndroid Build Coastguard Worker data = [] 52*6dbdd20aSAndroid Build Coastguard Worker if (defined(invoker.data)) { 53*6dbdd20aSAndroid Build Coastguard Worker data += invoker.data 54*6dbdd20aSAndroid Build Coastguard Worker } 55*6dbdd20aSAndroid Build Coastguard Worker 56*6dbdd20aSAndroid Build Coastguard Worker out_path = "$target_gen_dir/" + target_name 57*6dbdd20aSAndroid Build Coastguard Worker rebased_out_path = 58*6dbdd20aSAndroid Build Coastguard Worker rebase_path(target_gen_dir, root_build_dir) + "/" + target_name 59*6dbdd20aSAndroid Build Coastguard Worker 60*6dbdd20aSAndroid Build Coastguard Worker sources = invoker.sources 61*6dbdd20aSAndroid Build Coastguard Worker script = "$perfetto_root_path/tools/touch_file.py" 62*6dbdd20aSAndroid Build Coastguard Worker args = [ 63*6dbdd20aSAndroid Build Coastguard Worker "--output", 64*6dbdd20aSAndroid Build Coastguard Worker rebased_out_path, 65*6dbdd20aSAndroid Build Coastguard Worker ] 66*6dbdd20aSAndroid Build Coastguard Worker outputs = [ out_path ] 67*6dbdd20aSAndroid Build Coastguard Worker metadata = { 68*6dbdd20aSAndroid Build Coastguard Worker perfetto_action_type_for_generator = [ "python_binary" ] 69*6dbdd20aSAndroid Build Coastguard Worker perfetto_python_main = [ invoker.main ] 70*6dbdd20aSAndroid Build Coastguard Worker perfetto_data = data 71*6dbdd20aSAndroid Build Coastguard Worker } 72*6dbdd20aSAndroid Build Coastguard Worker } 73*6dbdd20aSAndroid Build Coastguard Worker} 74