Home | History | Annotate | Download | only in gn
      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 
     15 import("//build_overrides/build.gni")
     16 
     17 if (!build_with_chromium) {
     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.
     24 template("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 
     39     forward_variables_from(invoker,
     40                            [
     41                              "defines",
     42                              "extra_configs",
     43                              "include_dirs",
     44                              "proto_in_dir",
     45                              "proto_out_dir",
     46                              "sources",
     47                              "testonly",
     48                              "visibility",
     49                            ])
     50   }
     51 }
     52