xref: /aosp_15_r20/external/pigweed/pw_protobuf_compiler/toolchain.gni (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2021 The Pigweed Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7#     https://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, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15import("//build_overrides/pigweed.gni")
16
17declare_args() {
18  # Compiling protobufs involves mirroring .proto files to the output directory
19  # in a specific configuration and invoking protoc on them. This work is done
20  # in a single toolchain to avoid unnecessary duplication in the build.
21  pw_protobuf_compiler_TOOLCHAIN =
22      "$dir_pw_protobuf_compiler/toolchain:protocol_buffer"
23
24  # pwpb previously generated field enum names in SNAKE_CASE rather than
25  # kConstantCase. Set this variable to temporarily enable legacy SNAKE_CASE
26  # support while you migrate your codebase to kConstantCase.
27  # b/266298474
28  pw_protobuf_compiler_GENERATE_LEGACY_ENUM_SNAKE_CASE_NAMES = false
29
30  # If true, requires the use of the `.pwpb_options` extensions for pw_protobuf
31  # options files. If false, allows the generic `.options` to be used as well.
32  pw_protobuf_compiler_NO_GENERIC_OPTIONS_FILES = false
33
34  # If true, disables using callback interfaces for oneof fields, and keep the
35  # legacy "oneof as struct member" interface.
36  pw_protobuf_compiler_NO_ONEOF_CALLBACKS = false
37}
38