Kurallar
proto_lang_toolchain
proto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
Kullanımdan kaldırıldı. Bunun yerine lütfen https://github.com/bazelbuild/rules_proto adresine gidin.
LANGUAGE_proto_library kuralının (ör. java_proto_library
) proto-derleyiciyi çağırır.
Bazı LANGUAGE_proto_library kuralları, komut satırı işaretleri kullanılarak hangi araç zincirinin kullanılacağının belirtilmesine izin verir. Bu kuralların dokümanlarına bakın.
Normalde, Java derleyicinizi ayarlamak istemiyorsanız bu tür kurallar yazmamalısınız.
Derleyici yok. Proto-derleyici, eklediğimiz proto_library kuralından alınır. Bu işaret, Blaze'e 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'ın kullandığı derleyiciyi, proto_library
ile aynı derleyiciyi zorunlu kılmak faydalıdır.
Örnekler
Basit bir örnek vermek gerekirse:
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
|
blacklisted_protos ile ilişkili srcs özelliğindeki dosyalar için kod oluşturulmaz.
Bu işlev, any.proto gibi önceden proto çalışma zamanlarına bağlı .proto dosyaları için kullanılır.
|
command_line
|
|
mnemonic
|
|
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 bunun yerine https://github.com/bazelbuild/rules_proto sayfasını kullanın.
Birden çok dilde kullanılabilecek protokol arabellek kitaplıkları tanımlamak için proto_library
kullanın. proto_library
, java_proto_library
gibi desteklenen kuralların deps
yan tümcesinde listelenebilir.
proto_library
, komut satırında derlendiğinde foo-descriptor-set.proto.bin
adlı bir dosya oluşturur. Bu dosya, kuralın src verdiği mesajlar için ayarlanan tanımlayıcıdır. Dosya,
https://developers.google.com/protocol-buffers/docs/techniques#self-description bölümünde açıklanan serileştirilmiş bir FileDescriptorSet
dosyasıdır.
Yalnızca doğrudan proto_library
kuralı tarafından belirtilen .proto
dosyalarıyla ilgili bilgileri içerir. Geçişli tanımlayıcı kümeleri, [ProtoInfo].transitive_descriptor_sets
Starlark sağlayıcısı aracılığıyla toplanabilir.
ProtoInfo.java
içindeki dokümanlara bakın.
Önerilen kod organizasyonu:
-
.proto
dosyası başına birproto_library
kuralı. -
foo.proto
adlı bir dosya, aynı pakette bulunanfoo_proto
adlı bir kuralda yer alır. -
foo_proto
adlı birproto_library
öğesini saran[language]_proto_library
öğesi,foo_[language]_proto
olarak adlandırılmalı 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 diğer proto_library hedeflerine bağlı olabilir.
Dile özgü kitaplıklara bağlı olmayabilir.
|
srcs
|
.proto ve .protodevel dosyalarının listesi. Bu genellikle boş olmayan bir listedir. srcs alanının boş bırakılabileceği bir kullanım alanı, takma ad kitaplığıdır. Bu, deps içinde bir veya daha fazla proto_library daha bulunan bir proto_library kuralıdır.
Bu kalıp, ör. kalıcı bir ad altındaki herkese açık API'yi dışa aktarmak için kullanılabilir.
|
exports
|
|
import_prefix
|
Bu ayar ayarlandığında, bu kuralın
|
strip_import_prefix
|
Ayarlandığında bu kuralın Göreli bir yolsa (eğik çizgiyle başlamadıysa) pakete bağlı yol olarak alınır. Mutlak bir ise depoya bağlı yol olarak kabul edilir.
|