Kurallar
- cc_proto_library
- java_lite_proto_library
- java_proto_library
- proto_library
- py_proto_library
- proto_lang_toolchain
- proto_toolchain
cc_proto_library
Kural kaynağını görüntülemecc_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
cc_proto_library
, .proto
dosyalarından C++ kodu oluşturur.
deps
, proto_library
kurallarını işaret etmelidir.
Örnek:
cc_library(
name = "lib",
deps = [":foo_cc_proto"],
)
cc_proto_library(
name = "foo_cc_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
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.
|
java_lite_proto_library
Kural kaynağını görüntülemejava_lite_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
, .proto
dosyalarından Java kodu oluşturur.
deps
, proto_library
kurallarını işaret etmelidir.
Örnek:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
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.
|
java_proto_library
Kural kaynağını görüntülemejava_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
, .proto
dosyalarından Java kodu oluşturur.
deps
, proto_library
kurallarını işaret etmelidir.
Örnek:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
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
Kural kaynağını görüntülemeproto_library(name, deps, srcs, data, allow_exports, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, exports, features, import_prefix, licenses, package_metadata, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, toolchains, visibility)
Birden fazla dilde kullanılabilen protokol arabellekleri kitaplıklarını tanımlamak için proto_library
kullanın. proto_library
, java_proto_library
gibi desteklenen kuralların deps
ifadesinde listelenebilir.
Komut satırında derlendiğinde proto_library
, foo-descriptor-set.proto.bin
adlı bir dosya oluşturur. Bu dosya, kuralın kaynak oluşturduğu iletilerin tanımlayıcı kümesidir. Dosya,
https://developers.google.com/protocol-buffers/docs/techniques#self-description adresinde açıklanan bir serileştirilmiş
FileDescriptorSet
.
Yalnızca bir proto_library
kuralı tarafından doğrudan .proto
bahsedilen dosyalarla 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.
proto_info.bzl
adresindeki belgelere göz atın.
Önerilen kod düzeni:
.proto
dosyası başına birproto_library
kuralı.foo.proto
adlı bir dosya, aynı pakette bulunanfoo_proto
adlı bir kuralda yer alacak.foo_proto
adlı birproto_library
öğesini sarmalayan[language]_proto_library
öğesinefoo_[language]_proto
adı verilmelidir ve aynı pakette yer almalı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.
Bir proto_library yalnızca diğer proto_library hedeflerine bağlı olabilir. Dile özgü kitaplıklara bağlı olmayabilir.
|
srcs
|
Etiket listesi; varsayılan değer .proto ve .protodevel dosyalarının listesi. Bu genellikle boş olmayan bir listedir. srcs alanının boş olabileceği bir kullanım alanı, alias-library'dir. Bu, deps iç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 Ayarlanmışsa 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.
|
py_proto_library
Kural kaynağını görüntülemepy_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
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_lang_toolchain
Kural kaynağını görüntülemeproto_lang_toolchain(name, allowlist_different_package, aspect_hints, blacklisted_protos, command_line, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, mnemonic, output_files, package_metadata, plugin, plugin_format_flag, progress_message, protoc_minimal_do_not_use, restricted_to, runtime, tags, target_compatible_with, testonly, toolchain_type, toolchains, 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 hakkında bilgi edinmek için belgelerine 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. |
allowlist_different_package
|
Etiket; varsayılan değer |
blacklisted_protos
|
Etiket listesi; varsayılan değer blacklisted_protos öğesinin srcs özelliğindeki dosyalar için kod oluşturulmaz.
Bu, any.proto gibi proto çalışma zamanlarına zaten bağlanmış .proto dosyaları için kullanılır.
|
command_line
|
Dize; zorunlu Bu 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 command_line içindeki $(OUT) öğesinin nasıl biçimlendirileceğini kontrol eder. Bu biçimlendirme, tek bir dosyanın yolu veya birden fazla dosya olması durumunda çıkış dizini şeklinde 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 |
protoc_minimal_do_not_use
|
Etiket; varsayılan değer |
runtime
|
Etiket; varsayılan değer |
toolchain_type
|
Etiket; varsayılan değer |
proto_toolchain
Kural kaynağını görüntülemeproto_toolchain(name, aspect_hints, command_line, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, mnemonic, output_files, package_metadata, progress_message, proto_compiler, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
command_line
|
Dize; varsayılan değer |
mnemonic
|
Dize; varsayılan değer |
output_files
|
Dize; varsayılan değer |
progress_message
|
Dize; varsayılan değer |
proto_compiler
|
Etiket; varsayılan değer |