xref: /aosp_15_r20/external/perfetto/meson.build (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
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