Regras
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)
Obsoleto. https://github.com/bazelbuild/rules_proto (link em inglês).
Especifica como uma regra de Lang_proto_library (por exemplo, java_proto_library
) precisa invocar o
protocompilador.
Algumas regras de Lang_proto_library permitem especificar qual conjunto de ferramentas usar usando sinalizações de linha de comando.
Consulte a documentação.
Normalmente, você não deve escrever esse tipo de regra, a menos que queira ajustar seu compilador Java.
Não há compilador. O proto-compiler é retirado da regra proto_library a que anexamos. Ela é
transmitida como uma sinalização de linha de comando para o Blaze.
Vários recursos exigem que um proto-compilador seja invocado na própria regra proto_library.
É vantajoso impor que o compilador usado pela Lang_proto_library seja igual ao
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 |
Um nome exclusivo para o destino. |
blacklisted_protos
|
srcs de
blacklisted_protos .
Ele é usado para arquivos .proto que já estão vinculados aos ambientes de execução proto, como
any.proto .
|
command_line
|
|
mnemonic
|
|
output_files
|
$(OUT) em command_line é formatado por
um caminho para um único arquivo ou por diretório de saída no caso de vários arquivos.
Os valores possíveis são: "single", "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)
Obsoleto. Use https://github.com/bazelbuild/rules_proto.
Use proto_library
para definir bibliotecas de buffers de protocolo que podem ser usadas em várias linguagens. Um proto_library
pode estar listado
na cláusula deps
de regras compatíveis, como java_proto_library
.
Quando compilado na linha de comando, um proto_library
cria um arquivo denominado
foo-descriptor-set.proto.bin
, que é o conjunto de descritores para as
mensagens que a regra define. O arquivo é um FileDescriptorSet
serializado, 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 uma
regra proto_library
. A coleção de conjuntos de descritores transitivos está disponível no
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
estará em uma regra chamadafoo_proto
, localizada no mesmo pacote. - Um
[language]_proto_library
que envolve umproto_library
chamadofoo_proto
precisa ser chamado defoo_[language]_proto
e estar localizado no mesmo pacote.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para o destino. |
deps
|
proto_library de que a segmentação depende.
Um proto_library só pode depender de outros destinos proto_library .
Isso pode não depender de bibliotecas específicas da linguagem.
|
srcs
|
.proto e .protodevel que são
processados para criar o destino. Geralmente, esse tipo de lista não é vazia. Um caso de uso
em que srcs pode estar vazio é uma biblioteca de alias. Essa é uma regra proto_library que tem uma ou mais outras proto_library em deps .
Esse padrão pode ser usado, por exemplo, para exportar uma API pública com um nome persistente.
|
exports
|
|
import_prefix
|
Quando definido, os arquivos de origem .proto no atributo O prefixo no atributo |
strip_import_prefix
|
Quando definidos, os arquivos de origem .proto no atributo Se for um caminho relativo (que não começa com uma barra), ele será usado como relativo ao pacote. Se for absoluto, ele será entendido como um caminho relativo ao repositório. O prefixo no atributo |