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, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
cc_proto_library
, .proto
dosyalarından C++ kodu oluşturur.
deps
, proto_library
kurallarına yönlendirmelidir.
Ö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
|
Etiketler 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, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
, .proto
dosyalarından Java kodu oluşturur.
deps
, proto_library
kurallarına yönlendirmelidir.
Ö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
|
Etiketler listesi; varsayılan değer proto_library kural listesi.
|
java_proto_library
Kural kaynağını görüntülemejava_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
, .proto
dosyalarından Java kodu oluşturur.
deps
, proto_library
kurallarına yönlendirmelidir.
Ö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
|
Etiketler listesi; varsayılan değer proto_library kural listesi.
|
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, toolchains, visibility)
Bazel kullanıyorsanız lütfen kuralı https://github.com/bazelbuild/rules_proto adresinden yükleyin.
Birden fazla dilde kullanılabilecek protokol arabellek kitaplıklarını tanımlamak için proto_library
kullanın. proto_library
, desteklenen kuralların deps
yan tümcesinde listelenir (ör. java_proto_library
).
Komut satırında derlendiğinde proto_library
, foo-descriptor-set.proto.bin
adlı bir dosya oluşturur. Bu dosya, kuralın kaynak olarak belirttiği iletiler için ayarlanan tanımlayıcıdır. 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ıyla ilgili bilgileri içerir. Geçiş tanımlayıcı kümesi koleksiyonu, [ProtoInfo].transitive_descriptor_sets
Starlark sağlayıcısı aracılığıyla kullanılabilir.
proto_info.bzl
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.foo_proto
adlı birproto_library
'u sarmalayan[language]_proto_library
,foo_[language]_proto
olarak adlandırılmalı ve aynı pakette bulunmalıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiketler 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
|
Etiketler listesi; varsayılan değer .proto ve .protodevel dosyalarının listesi. Bu genellikle boş olmayan bir listetir. srcs değerinin boş olabileceği bir kullanım alanı takma ad kitaplığıdır. Bu, deps içinde bir veya daha fazla proto_library içeren bir proto_library kuralı.
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
|
Etiketler listesi; varsayılan değer |
import_prefix
|
Dize; varsayılan değer Bu özellik ayarlandığında, bu kuralın Bu ön ek eklenmeden önce |
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.
|
py_proto_library
Kural kaynağını görüntülemepy_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, 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
|
Etiketler listesi; varsayılan değer |
proto_lang_toolchain
Kural kaynağını görüntülemeproto_lang_toolchain(name, allowlist_different_package, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, 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ş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.
LANG_proto_library tarafından kullanılan derleyicinin, proto_library
tarafından kullanılan derleyiciyle aynı olmasını zorunlu kılmak faydalıdır.
Örnekler
Basit bir örnek verelim:
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
|
Etiketler 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ğlı olan .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/eklentilere özgü bölümleri 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 nasıl biçimlendirileceğini kontrol eder. Bu değer, tek bir dosyanın yolu veya birden fazla dosya varsa çıkış dizini olabilir.
Olası değerler: "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 |
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, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, 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 |