Regras
proto_lang_toolchain
Conferir origem da regraproto_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)
Se você 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
) deve invocar o
proto-compiler.
Algumas regras pt_proto_library permitem especificar qual conjunto de ferramentas deve ser usado usando sinalizações de linha de comando.
consulte a documentação.
Normalmente, não é necessário 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. É
passada 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 essa segmentação. |
blacklisted_protos
|
Lista de rótulos o padrão é 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á passado ao proto-compiler para gerar o código. Inclua apenas as partes específicas a esse gerador de código/plug-in (por exemplo, não inclua parâmetros -I)
|
mnemonic
|
String; o padrão é |
output_files
|
String; o padrã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: "único", "vários".
|
plugin
|
Rótulo o padrão é --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; o padrão é --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; o padrão é |
proto_compiler
|
Rótulo: o padrão é |
runtime
|
Rótulo o padrão é |
proto_library
Acessar a origem da regraproto_library(name, deps, srcs, data, allow_exports, 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)
Obsoleto. Use https://github.com/bazelbuild/rules_proto.
Usar proto_library
para definir bibliotecas de buffers de protocolo
que pode ser usado em vários idiomas. Um proto_library
pode ser listado
na cláusula deps
de regras com suporte, como java_proto_library
.
Quando compilado na linha de comando, um proto_library
cria um arquivo chamado
foo-descriptor-set.proto.bin
, que é o descritor definido para as
mensagens das srcs da regra. O arquivo é um FileDescriptorSet
serializado, que é
descrito em
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Ele contém apenas informações sobre os arquivos .proto
mencionados diretamente por um
proto_library
regra a coleção de conjuntos de descritores transitivos fica disponível por meio do
provedor Starlark [ProtoInfo].transitive_descriptor_sets
.
Consulte a documentação em ProtoInfo.java
.
Organização de código recomendada:
- Uma regra
proto_library
por arquivo.proto
. - Um arquivo chamado
foo.proto
vai estar em uma regra chamadafoo_proto
, que está localizada no mesmo pacote. - Um
[language]_proto_library
que envolve umproto_library
chamadofoo_proto
deve ser chamado.foo_[language]_proto
e estejam no mesmo pacote.
Argumentos
Atributos | |
---|---|
name |
Nome; obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos o padrão é proto_library das quais o destino depende.
Um proto_library só pode depender de outras
metas proto_library .
Ele pode não depender de bibliotecas específicas da linguagem.
|
srcs
|
Lista de rótulos o padrão é .proto e .protodevel que estão
processados para criar o destino. Geralmente, essa lista não é vazia. Um caso de uso
em que srcs pode ficar vazio é uma biblioteca de alias. Esta é uma
regra proto_library com uma ou mais outras proto_library em deps .
Esse padrão pode ser usado para, por exemplo: exportar uma API pública com um nome persistente.
|
allow_exports
|
Rótulo o padrão é |
exports
|
Lista de rótulos; o padrão é |
import_prefix
|
String; o padrão é Quando definido, os arquivos de origem .proto no atributo O prefixo no atributo |
strip_import_prefix
|
String; o padrão é Quando definidos, os arquivos de origem .proto no atributo Se for um caminho relativo (que não começa com um caractere de barra), ele será considerado relativo ao pacote. Se for absoluto, será entendido como um caminho relativo ao repositório. O prefixo no atributo |