1*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2021 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 Worker# This meson project only supports the Perfetto SDK 16*6dbdd20aSAndroid Build Coastguard Worker# available from release branches. 17*6dbdd20aSAndroid Build Coastguard Worker# https://perfetto.dev/docs/instrumentation/tracing-sdk 18*6dbdd20aSAndroid Build Coastguard Worker 19*6dbdd20aSAndroid Build Coastguard Workerproject( 20*6dbdd20aSAndroid Build Coastguard Worker 'perfetto', 21*6dbdd20aSAndroid Build Coastguard Worker ['cpp'], 22*6dbdd20aSAndroid Build Coastguard Worker) 23*6dbdd20aSAndroid Build Coastguard Worker 24*6dbdd20aSAndroid Build Coastguard Workerfs = import('fs') 25*6dbdd20aSAndroid Build Coastguard Worker 26*6dbdd20aSAndroid Build Coastguard Workerif not fs.is_dir('sdk') 27*6dbdd20aSAndroid Build Coastguard Worker error('sdk dir not found, please checkout a release tag, e.g. v14.0') 28*6dbdd20aSAndroid Build Coastguard Workerendif 29*6dbdd20aSAndroid Build Coastguard Worker 30*6dbdd20aSAndroid Build Coastguard Workercpp = meson.get_compiler('cpp') 31*6dbdd20aSAndroid Build Coastguard Worker 32*6dbdd20aSAndroid Build Coastguard Workerdeps_perfetto = [dependency('threads')] 33*6dbdd20aSAndroid Build Coastguard Worker 34*6dbdd20aSAndroid Build Coastguard Workerif host_machine.system() == 'android' 35*6dbdd20aSAndroid Build Coastguard Worker deps_perfetto += cpp.find_library('log') 36*6dbdd20aSAndroid Build Coastguard Workerendif 37*6dbdd20aSAndroid Build Coastguard Worker 38*6dbdd20aSAndroid Build Coastguard Workerlib_perfetto = static_library( 39*6dbdd20aSAndroid Build Coastguard Worker 'perfetto', 40*6dbdd20aSAndroid Build Coastguard Worker sources: 'sdk/perfetto.cc', 41*6dbdd20aSAndroid Build Coastguard Worker dependencies: deps_perfetto, 42*6dbdd20aSAndroid Build Coastguard Worker install: true, 43*6dbdd20aSAndroid Build Coastguard Worker cpp_args: '-std=c++17', 44*6dbdd20aSAndroid Build Coastguard Worker) 45*6dbdd20aSAndroid Build Coastguard Worker 46*6dbdd20aSAndroid Build Coastguard Workerinc_perfetto = include_directories('sdk') 47*6dbdd20aSAndroid Build Coastguard Worker 48*6dbdd20aSAndroid Build Coastguard Workerdir_perfetto_trace = join_paths(meson.current_source_dir(), 49*6dbdd20aSAndroid Build Coastguard Worker 'protos/perfetto/trace') 50*6dbdd20aSAndroid Build Coastguard Worker 51*6dbdd20aSAndroid Build Coastguard Workerinstall_data(dir_perfetto_trace / 'perfetto_trace.proto') 52*6dbdd20aSAndroid Build Coastguard Worker 53*6dbdd20aSAndroid Build Coastguard Workerdep_perfetto = declare_dependency( 54*6dbdd20aSAndroid Build Coastguard Worker link_with: lib_perfetto, 55*6dbdd20aSAndroid Build Coastguard Worker include_directories: inc_perfetto, 56*6dbdd20aSAndroid Build Coastguard Worker variables: { 57*6dbdd20aSAndroid Build Coastguard Worker 'pkgdatadir': dir_perfetto_trace, 58*6dbdd20aSAndroid Build Coastguard Worker } 59*6dbdd20aSAndroid Build Coastguard Worker) 60