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ı 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ının kendisinde bir proto-derleyicinin çağrılmasını gerektirir.
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
|
Etiketler listesi; varsayılan değer blacklisted_protos öğesinin srcs özelliğindeki dosyalar için kod oluşturulmaz.
Bu, zaten şunun gibi proto çalışma zamanlarına bağlı .proto dosyaları için kullanılır:
any.proto
|
command_line
|
Dize; zorunlu Bu değer, kodun oluşturulması için proto-derleyiciye aktarılır. Yalnızca bu kod oluşturucuya/eklentilere özgü kısımları ekleyin (ör. -I parametrelerini eklemeyin)
|
mnemonic
|
Dize; varsayılan değer |
output_files
|
Dize; varsayılan değer command_line içindeki $(OUT) değerinin biçimlendirilme şeklini kontrol eder. Bu değer, tek bir dosyanın yolunu veya birden fazla dosya varsa çıkış dizininin yolunu belirtir.
Olası değerler şunlardır: "tek", "çoklu".
|
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ü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 bunun yerine https://github.com/bazelbuild/rules_proto adresini kullanın.
Protokol arabellekleri kitaplıklarını tanımlamak için proto_library
kullanın
birden fazla dilde kullanılabilir. Desteklenen kuralların deps
yan tümcesinde proto_library
(ör. java_proto_library
) listelenebilir.
Komut satırında derlendiğinde proto_library
, kuralın kaynaklarının bulunduğu iletiler için tanımlanan tanımlayıcı olan foo-descriptor-set.proto.bin
adlı bir dosya oluşturur. Dosya,
https://developers.google.com/protocol-buffers/docs/techniques#self-description adresinde açıklanan serileştirilmiş bir FileDescriptorSet
dosyasıdır.
Yalnızca bir proto_library
kuralı tarafından doğrudan bahsedilen .proto
dosyaları hakkında bilgi içerir. Geçişli tanımlayıcı kümesi koleksiyonu, [ProtoInfo].transitive_descriptor_sets
Starlark sağlayıcısı aracılığıyla kullanılabilir.
ProtoInfo.java
adresindeki dokümanlara göz atın.
Önerilen kod düzenlemesi:
-
.proto
dosyası başına birproto_library
kuralı. -
foo.proto
adlı bir dosya, aynı pakette bulunanfoo_proto
adlı bir kuralda yer alır. -
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 özgü kitaplıklara bağlı olmayabilir.
|
srcs
|
Etiketler listesi; varsayılan değer .proto ve .protodevel dosyalarının listesi:
işlendiğinden emin olun. Bu genellikle boş olmayan bir listetir. srcs 'nin boş bırakılabileceği bir kullanım alanı da takma ad kitaplığıdır. Bu,
proto_library kuralında deps ürününde 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
|
Etiketler listesi; varsayılan değer |
import_prefix
|
String; varsayılan değer Bu kuralın
|
strip_import_prefix
|
Dize; varsayılan değer Bu ayar etkinleştirildiğinde, bu kuralın Göreli bir yolsa (eğik çizgiyle başlamayan) pakete göreli bir yol olarak alınır. Mutlak bir yol ise depoya göreli yol olarak anlaşılır.
|