Regras de buffer de protocolo

Report an issue View source Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Regras

py_proto_library

Acessar a origem da regra
py_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" para gerar bibliotecas do Python a partir de arquivos ".proto". A convenção é nomear a regra "py_proto_library" como "foo_py_pb2" quando ela encapsular a regra "proto_library" como "foo_proto". "deps" precisa apontar para uma regra "proto_library". Exemplo: ```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

Nome: obrigatório

Um nome exclusivo para essa segmentação.

deps

Lista de rótulos. O padrão é [].

A lista de regras "proto_library" para gerar bibliotecas Python. Normalmente, é apenas um destino: a biblioteca proto de interesse. Pode ser qualquer destino que forneça "ProtoInfo".

proto_lang_toolchain

Exibir origem da regra
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)

Se estiver usando o Bazel, carregue a regra em https://github.com/bazelbuild/rules_proto.

Especifica como uma regra LANG_proto_library (por exemplo, java_proto_library) precisa invocar o protocompilador. Algumas regras do Lang_proto_library permitem especificar qual conjunto de ferramentas usar usando sinalizações de linha de comando. Consulte a documentação.

Normalmente, não é recomendável escrever esse tipo de regra, a menos que você queira ajustar seu compilador Java.

Não há compilador. O proto-compiler é retirado da regra proto_library a que nos conectamos. Ele é transmitido como uma flag de linha de comando para o Blaze. Vários recursos exigem que um proto-compiler seja invocado na própria regra proto_library. É benéfico forçar o compilador que LANG_proto_library usa a mesma que proto_library.

Exemplos

Um exemplo simples seria:


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

Argumentos

Atributos
name

Nome: obrigatório

Um nome exclusivo para o destino.

allowlist_different_package

Rótulo: o padrão é None.

blacklisted_protos

Lista de rótulos; o padrão é []

Nenhum código será gerado para arquivos no atributo srcs de blacklisted_protos. Isso é usado para arquivos .proto que já estão vinculados a ambientes de execução de proto, como any.proto.
command_line

String, obrigatório

Esse valor será transmitido para o proto-compiler para gerar o código. Inclua apenas as partes específicas para esse gerador de código/plug-in (por exemplo, não inclua parâmetros -I)
  • O arquivo $(OUT) é específico para Lang_proto_library. As regras precisam definir como interpretar essa variável. No Java, por exemplo, $(OUT) será substituído pelo nome de arquivo src-jar a ser criado.
mnemonic

String; o padrão é "GenProto"

Esse valor será definido como mnemônico na ação do protótipo.
output_files

String. O padrão é "legacy".

Controla como o $(OUT) em command_line é formatado, seja por um caminho para um único arquivo ou diretório de saída em caso de vários arquivos. Os valores possíveis são: "single" e "multiple".
plugin

Rótulo: o padrão é None.

Se fornecido, será disponibilizado para a ação que chama o proto-compilador e será transmitido para o proto-compilador: --plugin=protoc-gen-PLUGIN=<executable>.
plugin_format_flag

String; o padrão é ""

Se fornecido, esse valor será passado ao proto-compiler para usar o plug-in. O valor precisa conter um único %s, que é substituído pelo executável do plug-in. --plugin=protoc-gen-PLUGIN=<executable>.
progress_message

String; o padrão é "Generating proto_library %{label}"

Esse valor será definido como a mensagem de progresso na ação protoc.
protoc_minimal_do_not_use

Rótulo: o padrão é None.

runtime

Rótulo; o padrão é None

Uma biblioteca específica da linguagem em que o código gerado é compilado. O comportamento exato é específico para jam_proto_library. O Java, por exemplo, precisa ser compilado no ambiente de execução.
toolchain_type

Rótulo: o padrão é None.

proto_toolchain

Acessar a origem da regra
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

Nome: obrigatório

Um nome exclusivo para essa segmentação.

command_line

String; o padrão é "--descriptor_set_out=%s"

mnemonic

String; o padrão é "GenProtoDescriptorSet"

output_files

String; o padrão é "single"

progress_message

String; o padrão é "Generating Descriptor Set proto_library %{label}"

proto_compiler

Rótulo: o padrão é None.