Reglas de búfer de protocolo

Denuncia un problema Ver fuente Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Reglas

py_proto_library

Ver la fuente de la regla
py_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Usa "py_proto_library" para generar bibliotecas de Python a partir de archivos ".proto". La convención es nombrar la regla "py_proto_library" como "foo_py_pb2" cuando une la regla "proto_library" "foo_proto". "deps" debe apuntar a una regla "proto_library". Ejemplo: ```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"], ) ```

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

deps

Lista de etiquetas; el valor predeterminado es []

Es la lista de reglas "proto_library" para las que se generarán bibliotecas de Python. Por lo general, solo se usa un objetivo: la biblioteca de proto de interés. Puede ser cualquier destino que proporcione "ProtoInfo".

proto_lang_toolchain

Ver la fuente de la regla
proto_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)

Si usas Bazel, carga la regla desde https://github.com/bazelbuild/rules_proto.

Especifica cómo una regla LANG_proto_library (p.ej., java_proto_library) debe invocar al protocompilador. Algunas reglas de LANG_proto_library permiten especificar qué cadena de herramientas usar con marcas de línea de comandos. Consulta su documentación.

Por lo general, no debes escribir ese tipo de reglas, a menos que quieras ajustar tu compilador de Java.

No hay compilador. El protocompilador se toma de la regla proto_library a la que nos adjuntamos. Se pasa como una marca de línea de comandos a Blaze. Varias funciones requieren que se invoque un compilador de proto en la propia regla proto_library. Es beneficioso aplicar el compilador que usa LANG_proto_library es el mismo que el que usa proto_library.

Ejemplos

Un ejemplo simple sería el siguiente:


proto_lang_toolchain(
    name = "javalite_toolchain",
    command_line = "--javalite_out=shared,immutable:$(OUT)",
    plugin = ":javalite_plugin",
    runtime = ":protobuf_lite",
)

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

allowlist_different_package

Etiqueta (Label); el valor predeterminado es None

blacklisted_protos

Es una lista de etiquetas. El valor predeterminado es [].

No se generará código para los archivos en el atributo 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

Cadena; obligatorio

Este valor se pasará a proto-compiler para generar el código. Incluye solo las partes específicas de este generador de código o complemento (p. ej., no incluyas parámetros -I).
  • $(OUT) es específico de LANG_proto_library. Se espera que las reglas definan cómo interpretan esta variable. En Java, por ejemplo, $(OUT) se reemplazará por el nombre del archivo src-jar que se creará.
mnemonic

Cadena; el valor predeterminado es "GenProto"

Este valor se establecerá como mnemónico en la acción de protoc.
output_files

Cadena; el valor predeterminado es "legacy"

Controla el formato de $(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”, “multiple”.
plugin

Etiqueta (Label); el valor predeterminado es None

Si se proporciona, estará disponible para la acción que llama al protocompilador y se le pasará al protocompilador: --plugin=protoc-gen-PLUGIN=<executable>.
plugin_format_flag

Cadena; el valor predeterminado es ""

Si se proporciona, este valor se pasará a proto-compiler para usar el complemento. El valor debe contener un solo %s que se reemplaza por el ejecutable del complemento. --plugin=protoc-gen-PLUGIN=<executable>.
progress_message

Cadena; el valor predeterminado es "Generating proto_library %{label}"

Este valor se establecerá como el mensaje de progreso en la acción de protoc.
protoc_minimal_do_not_use

Etiqueta; el valor predeterminado es None

runtime

Etiqueta (Label); el valor predeterminado es None

Es una biblioteca específica del lenguaje con la que se compila el código generado. El comportamiento exacto es específico de LANG_proto_library. Java, por ejemplo, debe compilarse en el entorno de ejecución.
toolchain_type

Etiqueta (Label); el valor predeterminado es None

proto_toolchain

Ver la fuente de la regla
proto_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)

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

command_line

Cadena; el valor predeterminado es "--descriptor_set_out=%s"

mnemonic

String; el valor predeterminado es "GenProtoDescriptorSet"

output_files

Cadena; el valor predeterminado es "single"

progress_message

Cadena; el valor predeterminado es "Generating Descriptor Set proto_library %{label}"

proto_compiler

Etiqueta (Label); el valor predeterminado es None