| # Copyright (C) 2017 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| import("../../gn/perfetto.gni") |
| import("../../protozero/protozero_library.gni") |
| import("all_protos.gni") |
| |
| # Create a copy of all the protos listed in all_protos.gni with the |
| # "option optimize_for = LITE_RUNTIME" bit removed so we can generate |
| # full proto .h/.cc files. |
| full_protos_base_dir = "${root_gen_dir}/protos_full" |
| full_protos_target_dir = |
| "$full_protos_base_dir/" + rebase_path(target_gen_dir, root_gen_dir) |
| |
| action_foreach("generate_full_protos") { |
| visibility = [ ":*" ] |
| script = "../../build/generate_full_protos.py" |
| sources = ftrace_proto_names |
| |
| # TODO(hjd): Add support for subdirectories. |
| output_directory = full_protos_target_dir |
| outputs = [ |
| "$output_directory/{{source_name_part}}.proto", |
| ] |
| |
| args = [ |
| "{{source}}", |
| rebase_path(output_directory, root_build_dir) + |
| "/{{source_name_part}}.proto", |
| ] |
| } |
| |
| proto_library("full") { |
| testonly = true |
| deps = [ |
| ":generate_full_protos", |
| ] |
| sources = [] |
| use_protobuf_full = true |
| proto_in_dir = "$full_protos_base_dir/" + perfetto_root_path |
| proto_out_dir = "protos_full" |
| foreach(proto, ftrace_proto_names) { |
| sources += [ "$full_protos_target_dir/$proto" ] |
| } |
| } |
| |
| proto_library("lite") { |
| sources = ftrace_proto_names |
| proto_in_dir = perfetto_root_path |
| proto_out_dir = "protos_lite" |
| } |
| |
| protozero_library("zero") { |
| sources = ftrace_proto_names |
| proto_in_dir = perfetto_root_path |
| proto_out_dir = "protos_zero" |
| generator_plugin_options = "wrapper_namespace=pbzero" |
| } |