blob: 1ee9ed98669dd3f38c7f695488f6645dcddddd50 [file] [log] [blame]
Primiano Tucci4f9b6d72017-12-05 20:59:16 +00001# 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
Primiano Tucci4c5efa42018-10-23 13:15:13 +010015import("perfetto.gni")
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000016
Primiano Tucci7e05fc12019-08-27 17:29:47 +020017if (perfetto_root_path == "//") {
Primiano Tucci7a40e4d2017-12-06 09:51:09 +000018 import("//gn/standalone/proto_library.gni")
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000019} 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
Oystein Eftevaag51e06e52018-01-18 11:28:49 -080028 generate_python = false
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000029 generator_plugin_label =
Primiano Tuccic2eb5102018-05-15 10:40:01 +010030 "$perfetto_root_path/src/ipc/protoc_plugin:ipc_plugin"
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000031 generator_plugin_suffix = ".ipc"
Eric Secklere0e19142019-03-25 10:14:18 +000032 deps = [
33 "$perfetto_root_path/src/ipc",
34 ]
Primiano Tucci114b6492017-12-11 23:09:45 +000035 if (defined(invoker.deps)) {
Eric Secklere0e19142019-03-25 10:14:18 +000036 deps += invoker.deps
Primiano Tucci114b6492017-12-11 23:09:45 +000037 }
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000038 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}