• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("perfetto.gni")
16
17if (perfetto_build_standalone || perfetto_build_with_android) {
18  import("//gn/standalone/proto_library.gni")
19} else {
20  import("//third_party/protobuf/proto_library.gni")
21}
22
23# Generates .ipc.{h,cc} stubs for IPC services defined in .proto files.
24template("ipc_library") {
25  proto_library(target_name) {
26    perfetto_root_path = invoker.perfetto_root_path
27
28    generate_python = false
29    generator_plugin_label =
30        "$perfetto_root_path/src/ipc/protoc_plugin:ipc_plugin"
31    generator_plugin_suffix = ".ipc"
32    deps = [
33      "$perfetto_root_path/src/ipc",
34    ]
35    if (defined(invoker.deps)) {
36      deps += invoker.deps
37    }
38    forward_variables_from(invoker,
39                           [
40                             "defines",
41                             "extra_configs",
42                             "include_dirs",
43                             "proto_in_dir",
44                             "proto_out_dir",
45                             "sources",
46                             "testonly",
47                             "visibility",
48                           ])
49  }
50}
51