blob: a80a03ecb9254d57d661d3fb5ef175944137193f [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
15import("//build_overrides/build.gni")
16
17if (!build_with_chromium) {
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# Equivalent to proto_library (generation of .h/.cc from .proto files) but
24# enables also generation using the protozero plugin.
25# The generated files will have the .pbzero.{cc,h} suffix, as opposed to the
26# .pb.{cc,h} of the official proto library.
27template("protozero_library") {
28 proto_library(target_name) {
29 perfetto_root_path = invoker.perfetto_root_path
30
31 generate_cc = false
Primiano Tucci20b760c2018-01-19 12:36:12 +000032 generate_python = false
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000033 generator_plugin_label = perfetto_root_path + "src/protozero/protoc_plugin"
34 generator_plugin_suffix = ".pbzero"
Primiano Tucci4f9b6d72017-12-05 20:59:16 +000035
36 if (defined(invoker.deps)) {
37 deps = invoker.deps
38 } else {
39 deps = []
40 }
41
42 deps += [ perfetto_root_path + "src/protozero" ]
43
44 forward_variables_from(invoker,
45 [
46 "defines",
47 "generator_plugin_options",
48 "include_dirs",
49 "proto_in_dir",
50 "proto_out_dir",
51 "sources",
52 "testonly",
53 "visibility",
54 ])
55 }
56}