Kurallar
proto_lang_toolchain
Kural kaynağını görüntülemeproto_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ı 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şaretlerini kullanarak hangi araç zincirinin kullanılacağını belirtmeye olanak tanır. Bu kurallar için dokümanlarına bakın.
Java derleyicinizi ayarlamak istemediğiniz sürece normalde bu tür kurallar yazmamalısınız.
Derleyici yoktur. Proto derleyici, bağladığımız proto_library kuralından alınır. Blaze'e komut satırı işareti olarak iletilir.
Bazı özellikler için proto_library kuralında proto derleyicinin çağrılması gerekir.
LANG_proto_library'nin kullandığı derleyicinin proto_library ile aynı olmasını zorunlu kılmak faydalıdır.
Örnekler
Basit bir örnek:
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_protosBu,any.protogibi proto çalışma zamanlarına zaten bağlanmış olan .proto dosyaları için kullanılır. | 
| command_line | Dize; zorunluBu değer, kodu oluşturmak için proto derleyiciye iletilir. Yalnızca bu kod oluşturucuya/eklentiye özgü kısımları ekleyin (ör. -I parametrelerini eklemeyin). 
 | 
| mnemonic | Dize; varsayılan değer  | 
| output_files | Dize; varsayılan değer  $(OUT)içindekicommand_lineöğesinin nasıl biçimlendirileceğini kontrol eder. Bu, tek bir dosyanın yolu veya birden fazla dosya olması durumunda çıkış dizini olabilir.
        Olası değerler: "single", "multiple". | 
| plugin | Etiket; varsayılan değer  --plugin=protoc-gen-PLUGIN=<executable>. | 
| plugin_format_flag | Dize; varsayılan değer  --plugin=protoc-gen-PLUGIN=<executable>. | 
| progress_message | Dize; 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ülemeproto_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 bunun yerine https://github.com/bazelbuild/rules_proto adresini kullanın.
Birden fazla dilde kullanılabilecek protokol arabellekleri kitaplıklarını tanımlamak için proto_library kullanın. proto_library, java_proto_library gibi desteklenen kuralların deps maddesinde listelenebilir.
Komut satırında derlendiğinde proto_library, foo-descriptor-set.proto.bin adlı bir dosya oluşturur. Bu dosya, kural kaynaklarının iletileri için tanımlayıcı kümesidir. Dosya, FileDescriptorSet olarak serileştirilmiştir. Bu, 
   https://developers.google.com/protocol-buffers/docs/techniques#self-description adresinde açıklanmıştır.
Yalnızca bir .proto kuralı tarafından doğrudan belirtilen proto_library dosyalarıyla ilgili bilgileri içerir. Geçişli tanımlayıcı kümelerinin toplanması [ProtoInfo].transitive_descriptor_sets Starlark sağlayıcısı aracılığıyla kullanılabilir.
ProtoInfo.java adresindeki belgelere göz atın.
Önerilen kod düzeni:
-  .protodosyası başına birproto_librarykuralı.
-  foo.protoadlı bir dosya, aynı pakette bulunanfoo_protoadlı bir kuralda yer alacak.
-  foo_protoadlı birproto_libraryöğesini sarmalayan bir[language]_proto_libraryöğesinefoo_[language]_protoadı verilmelidir ve aynı pakette 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_librarykurallarının listesi.
        Birproto_libraryyalnızca diğerproto_libraryhedeflerine bağlı olabilir.
        Dile özgü kitaplıklara bağlı olmamalıdır. | 
| srcs | Etiket listesi; varsayılan değer  .protove.protodeveldosyalarının listesi. Bu genellikle boş olmayan bir listedir.srcsöğesinin boş olabileceği bir kullanım alanı alias-library'dir. Bu,depsiçinde bir veya daha fazla başka proto_library bulunan bir proto_library kuralıdır.
        Bu kalıp, örneğin herkese açık bir API'yi kalıcı bir ad altında dışa aktarmak için kullanılabilir. | 
| allow_exports | Etiket; varsayılan değer  | 
| exports | Etiket listesi; varsayılan değer  | 
| import_prefix | Dize; varsayılan değer  Ayarlanmışsa bu kuralın  Bu ön ek eklenmeden önce  | 
| strip_import_prefix | Dize; varsayılan değer  Bu kuralın  Göreceli bir yolsa (eğik çizgiyle başlamıyorsa) paketle ilgili bir yol olarak kabul edilir. Mutlak bir yol ise depoya göreli yol olarak anlaşılır. 
 |