Aturan
- cc_proto_library
- java_lite_proto_library
- java_proto_library
- proto_library
- py_proto_library
- proto_lang_toolchain
- proto_toolchain
cc_proto_library
Melihat sumber aturancc_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
menghasilkan kode C++ dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
cc_library(
name = "lib",
deps = [":foo_cc_proto"],
)
cc_proto_library(
name = "foo_cc_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah proto_library
untuk membuat kode C++.
|
java_lite_proto_library
Melihat sumber aturanjava_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
menghasilkan kode Java dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah proto_library
untuk membuat kode Java.
|
java_proto_library
Melihat sumber aturanjava_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
menghasilkan kode Java dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah proto_library
untuk membuat kode Java.
|
proto_library
Melihat sumber aturanproto_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)
Jika menggunakan Bazel, muat aturan dari https://github.com/bazelbuild/rules_proto.
Gunakan proto_library
untuk menentukan library buffering protokol yang
dapat digunakan dari beberapa bahasa. proto_library
dapat dicantumkan dalam klausa deps
dari aturan yang didukung, seperti java_proto_library
.
Saat dikompilasi di command line, proto_library
akan membuat file
bernama foo-descriptor-set.proto.bin
, yang merupakan deskripsi yang ditetapkan untuk
pesan src aturan. File ini adalah FileDescriptorSet
yang diserialisasi, yang dijelaskan di
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
File ini hanya berisi informasi tentang file .proto
yang langsung
disebutkan oleh aturan proto_library
; kumpulan set deskripsi
transitif tersedia melalui
penyedia Starlark [ProtoInfo].transitive_descriptor_sets
.
Lihat dokumentasi di proto_info.bzl
.
Pengaturan kode yang direkomendasikan:
- Satu aturan
proto_library
per file.proto
. - File bernama
foo.proto
akan berada dalam aturan bernamafoo_proto
, yang terletak dalam paket yang sama. [language]_proto_library
yang menggabungkanproto_library
bernamafoo_proto
harus disebutfoo_[language]_proto
, dan berada dalam paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah proto_library lain yang menjadi dependensi target.
proto_library hanya boleh bergantung pada target proto_library
lain. Library ini mungkin tidak bergantung pada library khusus bahasa.
|
srcs
|
Daftar label; default-nya adalah .proto dan .protodevel yang
diproses untuk membuat target. Ini biasanya merupakan daftar yang tidak kosong. Salah satu kasus penggunaan
saat srcs dapat kosong adalah library alias. Ini adalah
aturan proto_library yang memiliki satu atau beberapa proto_library lain di deps .
Pola ini dapat digunakan untuk, misalnya, mengekspor API publik dengan nama persisten.
|
allow_exports
|
Label; default-nya adalah |
exports
|
Daftar label; default-nya adalah |
import_prefix
|
String; default-nya adalah Jika ditetapkan, file sumber .proto dalam atribut Awalan dalam atribut |
strip_import_prefix
|
String; default-nya adalah Jika ditetapkan, file sumber .proto dalam atribut Jika merupakan jalur relatif (tidak dimulai dengan garis miring), jalur tersebut akan dianggap sebagai jalur yang relatif terhadap paket. Jika bersifat absolut, jalur ini akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut |
py_proto_library
Melihat sumber aturanpy_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah |
proto_lang_toolchain
Melihat sumber aturanproto_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)
Jika menggunakan Bazel, muat aturan dari https://github.com/bazelbuild/rules_proto.
Menentukan cara aturan LANG_proto_library (misalnya, java_proto_library
) harus memanggil
proto-compiler.
Beberapa aturan LANG_proto_library memungkinkan Anda menentukan toolchain yang akan digunakan menggunakan flag command line; baca dokumentasinya.
Biasanya, Anda tidak boleh menulis aturan semacam itu kecuali jika ingin menyesuaikan compiler Java.
Tidak ada compiler. Compiler proto diambil dari aturan proto_library yang kita lampirkan. Flag ini
diteruskan sebagai flag command line ke Blaze.
Beberapa fitur memerlukan compiler proto untuk dipanggil pada aturan proto_library itu sendiri.
Sebaiknya terapkan compiler yang digunakan LANG_proto_library sama dengan yang digunakan
proto_library
.
Contoh
Contoh sederhananya adalah:
proto_lang_toolchain(
name = "javalite_toolchain",
command_line = "--javalite_out=shared,immutable:$(OUT)",
plugin = ":javalite_plugin",
runtime = ":protobuf_lite",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
allowlist_different_package
|
Label; default-nya adalah |
blacklisted_protos
|
Daftar label; default-nya adalah srcs dari
blacklisted_protos .
Ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, seperti
any.proto .
|
command_line
|
String; wajib Nilai ini akan diteruskan ke proto-compiler untuk membuat kode. Hanya sertakan bagian yang khusus untuk generator kode/plugin ini (mis., jangan sertakan parameter -I)
|
mnemonic
|
String; default-nya adalah |
output_files
|
String; default-nya adalah $(OUT) di command_line diformat, baik dengan
jalur ke satu file atau direktori output jika ada beberapa file.
Nilai yang mungkin adalah: "single", "multiple".
|
plugin
|
Label; default-nya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; default-nya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; default-nya adalah |
protoc_minimal_do_not_use
|
Label; default-nya adalah |
runtime
|
Label; default-nya adalah |
toolchain_type
|
Label; default-nya adalah |
proto_toolchain
Melihat sumber aturanproto_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)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
command_line
|
String; default-nya adalah |
mnemonic
|
String; default-nya adalah |
output_files
|
String; default-nya adalah |
progress_message
|
String; default-nya adalah |
proto_compiler
|
Label; default-nya adalah |