Rules
py_proto_library
View rule sourcepy_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)Use `py_proto_library` to generate Python libraries from `.proto` files. The convention is to name the `py_proto_library` rule `foo_py_pb2`, when it is wrapping `proto_library` rule `foo_proto`. `deps` must point to a `proto_library` rule. Example: ```starlark py_library( name = "lib", deps = [":foo_py_pb2"], ) py_proto_library( name = "foo_py_pb2", deps = [":foo_proto"], ) proto_library( name = "foo_proto", srcs = ["foo.proto"], ) ```
Arguments
Attributes | |
---|---|
name |
Name; required A unique name for this target. |
deps
|
List of labels; default is |
proto_lang_toolchain
View rule sourceproto_lang_toolchain(name, allowlist_different_package, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, plugin, plugin_format_flag, progress_message, protoc_minimal_do_not_use, restricted_to, runtime, tags, target_compatible_with, testonly, toolchain_type, toolchains, visibility)
If using Bazel, please load the rule from https://github.com/bazelbuild/rules_proto.
Specifies how a LANG_proto_library rule (e.g., java_proto_library
) should invoke the
proto-compiler.
Some LANG_proto_library rules allow specifying which toolchain to use using command-line flags;
consult their documentation.
Normally you should not write those kind of rules unless you want to tune your Java compiler.
There's no compiler. The proto-compiler is taken from the proto_library rule we attach to. It is
passed as a command-line flag to Blaze.
Several features require a proto-compiler to be invoked on the proto_library rule itself.
It's beneficial to enforce the compiler that LANG_proto_library uses is the same as the one
proto_library
does.
Examples
A simple example would be:
proto_lang_toolchain(
name = "javalite_toolchain",
command_line = "--javalite_out=shared,immutable:$(OUT)",
plugin = ":javalite_plugin",
runtime = ":protobuf_lite",
)
Arguments
Attributes | |
---|---|
name |
Name; required A unique name for this target. |
allowlist_different_package
|
Label; default is |
blacklisted_protos
|
List of labels; default is srcs attribute of
blacklisted_protos .
This is used for .proto files that are already linked into proto runtimes, such as
any.proto .
|
command_line
|
String; required This value will be passed to proto-compiler to generate the code. Only include the parts specific to this code-generator/plugin (e.g., do not include -I parameters)
|
mnemonic
|
String; default is |
output_files
|
String; default is $(OUT) in command_line is formatted, either by
a path to a single file or output directory in case of multiple files.
Possible values are: "single", "multiple".
|
plugin
|
Label; default is --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; default is --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; default is |
protoc_minimal_do_not_use
|
Label; default is |
runtime
|
Label; default is |
toolchain_type
|
Label; default is |
proto_toolchain
View rule sourceproto_toolchain(name, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, progress_message, proto_compiler, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Arguments
Attributes | |
---|---|
name |
Name; required A unique name for this target. |
command_line
|
String; default is |
mnemonic
|
String; default is |
output_files
|
String; default is |
progress_message
|
String; default is |
proto_compiler
|
Label; default is |