Protokol Arabelleği Kuralları

7.3 · 7.2 · 7.1 · 7.0 · 6.5

Kurallar

py_proto_library

Kural kaynağını görüntüleme
py_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
``.proto`` dosyalarından Python kitaplıkları oluşturmak için "py_proto_library"i kullanın. "proto_library" kuralı "foo_proto"yu sarmalıyorsa "py_proto_library" kuralının adı "foo_py_pb2" olmalıdır. "deps", bir "proto_library" kuralını işaret etmelidir. Örnek: ```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"], ) ```

Bağımsız değişkenler

Özellikler
name

Ad; gerekli

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Python kitaplığı oluşturmak için kullanılacak "proto_library" kurallarının listesi. Genellikle bu tek bir hedeftir: İlgilenilen proto kütüphanesi. "ProtoInfo" sağlayan herhangi bir hedef olabilir.

proto_lang_toolchain

Kural kaynağını göster
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)

Bazel kullanıyorsanız lütfen kuralı https://github.com/bazelbuild/rules_proto adresinden yükleyin.

Bir LANG_proto_library kuralının (ör. java_proto_library) proto-derleyiciyi çağırmalıdır. Bazı LANG_proto_library kuralları, komut satırı işaretçileri kullanılarak hangi araç zincirinin kullanılacağını belirtmeye olanak tanır. Bu kuralların belgelerine bakın.

Java derleyicinizi ayarlamak istemiyorsanız genellikle bu tür kurallar yazmamalısınız.

Derleyici yoktur. Proto derleyici, eklediğimiz proto_library kuralından alınır. Bu parametre, Blaze'a komut satırı işareti olarak iletilir. Bazı özellikler, proto_library kuralında bir proto-derleyicinin çağrılmasına ihtiyaç duyar. LANGUAGE_proto_library adlı derleyicinin kullandığı derleyicinin proto_library ile aynı olması faydalı olur.

Örnekler

Basit bir örnek verelim:


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

Bağımsız değişkenler

Özellikler
name

Ad; gerekli

Bu hedef için benzersiz bir ad.

allowlist_different_package

Etiket; varsayılan değer None'dir.

blacklisted_protos

Etiket listesi; varsayılan []

blacklisted_protos öğesinin srcs özelliğindeki dosyalar için kod oluşturulmaz. Bu, any.proto gibi proto çalışma zamanlarına zaten bağlı olan .proto dosyaları için kullanılır.
command_line

Dize; zorunlu

Bu değer, kodu oluşturmak için proto-derleyiciye iletilir. Yalnızca bu kod oluşturucuya/eklentiye özel parçaları dahil edin (ör. -I parametrelerini dahil etmeyin)
  • $(OUT), LANG_proto_library'ye özgüdür. Kurallar bu değişkeni nasıl yorumladıklarını tanımlamalıdır. Örneğin, Java için $(OUT) oluşturulacak src-jar dosya adıyla değiştirilir.
mnemonic

Dize; varsayılan değer "GenProto"'tir

Bu değer, prototip işlemindeki anımsatıcı olarak ayarlanır.
output_files

Dize; varsayılan değer "legacy"'tir

command_line içindeki $(OUT) öğesinin nasıl biçimlendirileceğini, tek bir dosyaya giden bir yolla veya birden fazla dosya varsa çıkış dizinine göre kontrol eder. Olası değerler: "tek", "çoklu".
plugin

Etiket; varsayılan değer None

Sağlanırsa proto derleyiciyi çağıran işleme sunulur ve proto derleyiciye iletilir: --plugin=protoc-gen-PLUGIN=<executable>.
plugin_format_flag

Dize; varsayılan değer ""'tir

Bu değer sağlanırsa eklentinin kullanılması için proto-derleyiciye iletilir. Değer, eklenti yürütülebilir dosyasıyla değiştirilen tek bir %s içermelidir. --plugin=protoc-gen-PLUGIN=<executable>.
progress_message

Dize; varsayılan değer "Generating proto_library %{label}"'tir

Bu değer, protoc işleminde ilerleme mesajı olarak ayarlanır.
protoc_minimal_do_not_use

Etiket; varsayılan değer None'dir.

runtime

Etiket; varsayılan değer None'dir.

Oluşturulan kodun derlendiği dile özgü bir kitaplık. Tam davranış, LANG_proto_library'ye özeldir. Örneğin, Java çalışma zamanında derlenmelidir.
toolchain_type

Etiket; varsayılan değer None'dir.

proto_toolchain

Kural kaynağını görüntüleme
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)

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

command_line

Dize; varsayılan değer "--descriptor_set_out=%s"'tir

mnemonic

Dize; varsayılan değer "GenProtoDescriptorSet"'tir

output_files

Dize; varsayılan değer "single"

progress_message

Dize; varsayılan değer "Generating Descriptor Set proto_library %{label}"'tir

proto_compiler

Etiket; varsayılan değer None'dir.