Kurallar
proto_lang_toolchain
Kural kaynağını görüntüleproto_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)
Bazel kullanıyorsanız lütfen kuralı adresinden yükleyin. https://github.com/bazelbuild/rules_proto.
Bir LINK_proto_library kuralının (ör. java_proto_library
),
proto-derleyicidir.
Bazı LANGUAGE_proto_library kuralları, komut satırı işaretleri kullanarak hangi araç zincirinin kullanılacağını belirtmenize olanak tanır.
onların belgelerine bakın.
Normalde bu tür kuralları siz istemeden Java derleyicinizi ayarlayın.
Derleyici yoktur. Proto derleyici, eklediğimiz proto_library kuralından alınır. Evet
Blaze'e komut satırı işareti olarak aktarılır.
Bazı özellikler, proto_library kuralında bir proto-derleyicinin çağrılmasına ihtiyaç duyar.
LANGUAGE_proto_library adlı derleyicinin kullandığı derleyicinin derleyiciyle aynı olması faydalı olur
proto_library
kullanıyor.
Örnekler
Basit bir örnek şöyle olabilir:
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; zorunlu Bu hedef için benzersiz bir ad. |
blacklisted_protos
|
Etiket listesi; varsayılan değer srcs özelliğindeki dosyalar için kod oluşturulmaz:
blacklisted_protos .
Bu, zaten şunun gibi proto çalışma zamanlarına bağlı .proto dosyaları için kullanılır:
any.proto
|
command_line
|
String; zorunlu Bu değer, kodun oluşturulması için proto-derleyiciye aktarılır. Yalnızca bazı kısımları eklemek bu kod oluşturucuya/eklentiye özel (ör. -I parametrelerini dahil etmeyin)
|
mnemonic
|
String; varsayılan değer |
output_files
|
String; varsayılan değer command_line içinde $(OUT) öğesinin
tek bir dosyaya veya birden fazla dosya varsa çıkış dizinine giden bir yol.
Olası değerler şunlardır: "tek", "çoklu".
|
plugin
|
Etiket; varsayılan değer --plugin=protoc-gen-PLUGIN=<executable>. .
|
plugin_format_flag
|
String; varsayılan değer --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; varsayılan değer |
proto_compiler
|
Etiket; varsayılan değer |
runtime
|
Etiket; varsayılan değer |
proto_library
Kural kaynağını görüntüleproto_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)
Kullanımdan kaldırıldı. Lütfen şunu kullanın: https://github.com/bazelbuild/rules_proto adresini ziyaret edin.
Protokol arabellekleri kitaplıklarını tanımlamak için proto_library
kullanın
birden fazla dilde kullanılabilir. proto_library
listede olabilir
java_proto_library
gibi desteklenen kuralların deps
deyimi içinde kullanılabilir.
proto_library
komutu, komut satırında derlendiğinde
foo-descriptor-set.proto.bin
,
mesajı, src'lere gönderilir. Dosya, seri hâlindeki (FileDescriptorSet
)
şurada açıklandığı:
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Yalnızca bir.proto
proto_library
kural; geçişli tanımlayıcı kümeleri koleksiyonu,
[ProtoInfo].transitive_descriptor_sets
Starlark sağlayıcısı.
ProtoInfo.java
belgelerine göz atın.
Önerilen kod organizasyonu:
- Her
.proto
dosyası için birproto_library
kuralı. -
foo.proto
adlı dosya,foo_proto
adlı bir kuralda yer alır. Bu kural aynı pakette bulunuyor. -
proto_library
adlı bir etiketi sarmalayan[language]_proto_library
foo_proto
şöyle çağrılmalıdır:foo_[language]_proto
ve aynı paket içinde bulunmalıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer proto_library kurallarının listesi.
proto_library yalnızca
proto_library hedef.
Dile özel kitaplıklara bağlı olmayabilir.
|
srcs
|
Etiket listesi; varsayılan değer .proto ve .protodevel dosyalarının listesi:
işlenerek hedefin oluşturulması. Bu genellikle boş bir listedir. Bir kullanım alanı
Burada srcs boş bir takma ad-kitaplığı olabilir. Bu,
proto_library kuralında deps içinde bir veya daha fazla başka proto_library bulunuyor.
Bu kalıp, ör. herkese açık API'yi kalıcı bir adla dışa aktarma.
|
allow_exports
|
Etiket; varsayılan değer |
exports
|
Etiket listesi; varsayılan değer |
import_prefix
|
String; varsayılan değer Ayarlandığında, bu kuralın
|
strip_import_prefix
|
String; varsayılan değer Ayarlandığında, bu kuralın Göreli bir yolsa (eğik çizgiyle başlamıyorsa) pakete bağlı olarak alınır bir. Mutlaksa depoya bağlı bir yol olarak kabul edilir.
|