Skip to main content

Rules

proto_lang_toolchain

View rule sourceopen_in_new
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:

Arguments

proto_library

View rule sourceopen_in_new
Deprecated. Please use https://github.com/bazelbuild/rules_proto instead. Use proto_library to define libraries of protocol buffers which may be used from multiple languages. A proto_library may be listed in the deps clause of supported rules, such as java_proto_library. When compiled on the command-line, a proto_library creates a file named foo-descriptor-set.proto.bin, which is the descriptor set for the messages the rule srcs. The file is a serialized FileDescriptorSet, which is described in https://developers.google.com/protocol-buffers/docs/techniques#self-description. It only contains information about the .proto files directly mentioned by a proto_library rule; the collection of transitive descriptor sets is available through the [ProtoInfo].transitive_descriptor_sets Starlark provider. See documentation in ProtoInfo.java. Recommended code organization:
  • One proto_library rule per .proto file.* A file named foo.proto will be in a rule named foo_proto, which is located in the same package.* A [language]_proto_library that wraps a proto_library named foo_proto should be called foo_[language]_proto, and be located in the same package.

Arguments