Kurallar
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)
Kullanımdan kaldırıldı. Lütfen https://github.com/bazelbuild/rules_proto adresini ziyaret edin.
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 |
Bu hedef için benzersiz bir ad. |
blacklisted_protos
|
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
|
|
mnemonic
|
|
output_files
|
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
|
--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)
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 |
Bu hedef için benzersiz bir ad. |
deps
|
proto_library kurallarının listesi.
proto_library yalnızca
proto_library hedef.
Dile özel kitaplıklara bağlı olmayabilir.
|
srcs
|
.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.
|
exports
|
|
import_prefix
|
Ayarlandığında, bu kuralın
|
strip_import_prefix
|
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.
|