Reglas
proto_lang_toolchain
proto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, output_files, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
Ya no está disponible. En su lugar, consulta https://github.com/bazelbuild/rules_proto.
Especifica cómo una regla LANG_proto_library (p.ej., java_proto_library
) debe invocar el compilador de protocolos.
Algunas reglas LANG_proto_library permiten especificar qué cadena de herramientas usar mediante marcas de línea de comandos. Consulta su documentación.
Por lo general, no debes escribir ese tipo de reglas, a menos que desees ajustar tu compilador de Java.
No hay compilador. El compilador proto se toma de la regla proto_library a la que adjuntamos. Se pasa como una marca de línea de comandos a Blaze.
Varias funciones requieren que se invoque un protocompilador en la regla proto_library.
Resulta beneficioso hacer que el compilador que usa LANG_proto_library sea el mismo que el que hace proto_library
.
Ejemplos
Un ejemplo sencillo sería:
proto_lang_toolchain( name = "javalite_toolchain", command_line = "--javalite_out=shared,immutable:$(OUT)", plugin = ":javalite_plugin", runtime = ":protobuf_lite", )
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
blacklisted_protos
|
srcs de blacklisted_protos .
Se usa para archivos .proto que ya están vinculados a entornos de ejecución de proto, como any.proto .
|
command_line
|
|
mnemonic
|
|
output_files
|
$(OUT) en command_line , ya sea mediante una ruta de acceso a un solo archivo o a un directorio de salida en caso de varios archivos.
Los valores posibles son “single” o “multiple”.
|
plugin
|
--plugin=protoc-gen-PLUGIN= .
|
plugin_format_flag
|
--plugin=protoc-gen-PLUGIN=
|
progress_message
|
|
proto_compiler
|
|
runtime
|
|
proto_library
proto_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, import_prefix, licenses, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, visibility)
Ya no está disponible. En su lugar, usa https://github.com/bazelbuild/rules_proto.
Usa proto_library
para definir bibliotecas de búferes de protocolo que se pueden usar desde varios lenguajes. Un proto_library
puede aparecer en la cláusula deps
de las reglas compatibles, como java_proto_library
.
Cuando se compila en la línea de comandos, un proto_library
crea un archivo llamado foo-descriptor-set.proto.bin
, que es el conjunto de descriptores para los mensajes que la regla srcs. El archivo es un FileDescriptorSet
serializado, que se describe en
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Solo contiene información sobre los archivos .proto
mencionados directamente por una regla proto_library
. La colección de conjuntos de descriptores transitivos está disponible a través del proveedor [ProtoInfo].transitive_descriptor_sets
de Starlark.
Consulta la documentación en ProtoInfo.java
.
Organización de código recomendada:
- Una regla
proto_library
por cada archivo.proto
. - Un archivo llamado
foo.proto
estará en una regla llamadafoo_proto
, que se encuentra en el mismo paquete. - Un
[language]_proto_library
que une unproto_library
llamadofoo_proto
debe llamarsefoo_[language]_proto
y estar ubicado en el mismo paquete.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
proto_library de las que depende el destino.
Un proto_library solo puede depender de otros objetivos proto_library .
Es posible que no dependa de bibliotecas de lenguajes específicos.
|
srcs
|
.proto y .protodevel que se procesan para crear el destino. Por lo general, esta lista no está vacía. Un caso de uso en el que srcs puede estar vacío es una alias-library. Esta es una regla proto_library con una o más proto_library en deps .
Este patrón se puede usar para, p.ej., exportar una API pública con un nombre persistente.
|
exports
|
|
import_prefix
|
Cuando se configura, se puede acceder a los archivos de origen .proto en el atributo Antes de agregar este prefijo, se quita el prefijo del atributo |
strip_import_prefix
|
Cuando se configura, se puede acceder a los archivos fuente .proto en el atributo Si es una ruta relativa (que no comienza con una barra), se toma como una relativa de paquete. Si es una absoluta, se entiende como una ruta relativa de repositorio. El prefijo del atributo |