Aturan
proto_library
Lihat 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, harap 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
aturan yang didukung, seperti
java_proto_library
.
Saat dikompilasi pada command line, proto_library
akan membuat file
bernama foo-descriptor-set.proto.bin
, yang merupakan kumpulan deskripsi untuk
pesan aturan srcs. File ini adalah FileDescriptorSet
serial, yang dijelaskan dalam
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
File ini hanya berisi informasi tentang file .proto
yang disebutkan secara langsung
oleh aturan proto_library
; kumpulan kumpulan deskriptor
transitif tersedia melalui
penyedia Starlark [ProtoInfo].transitive_descriptor_sets
.
Lihat dokumentasi di proto_info.bzl
.
Pengaturan kode yang direkomendasikan:
- Satu aturan
proto_library
per.proto
file. - File bernama
foo.proto
akan berada dalam aturan bernamafoo_proto
, yang berada dalam paket yang sama. [language]_proto_library
yang menggabungkanproto_library
bernamafoo_proto
harus disebutfoo_[language]_proto
, dan ditempatkan dalam paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library lain yang diandalkan target.
proto_library mungkin hanya bergantung pada target proto_library
lainnya. Ini mungkin tidak bergantung pada library bahasa tertentu.
|
srcs
|
Daftar label; defaultnya adalah .proto dan .protodevel yang
diproses untuk membuat target. Daftar ini biasanya tidak kosong. Satu kasus penggunaan
saat srcs dapat dikosongkan adalah library-alias. Ini adalah
aturan proto_library yang memiliki satu atau beberapa proto_library lain di deps .
Pola ini dapat digunakan, misalnya, mengekspor api publik dengan nama persisten.
|
allow_exports
|
Label; defaultnya adalah |
exports
|
Daftar label; defaultnya adalah |
import_prefix
|
String; defaultnya adalah Jika ditetapkan, file sumber .proto dalam atribut Awalan dalam atribut |
strip_import_prefix
|
String; defaultnya adalah Jika ditetapkan, file sumber .proto dalam atribut Jika jalur relatif (tidak dimulai dengan garis miring), jalur akan diambil sebagai jalur relatif paket. Jika nilainya absolut, nilainya akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut |
proto_lang_toolchain
Lihat 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, harap muat aturan dari https://github.com/bazelbuild/rules_proto.
Menentukan bagaimana aturan LANG_proto_library (mis., java_proto_library
) harus memanggil
proto-compiler.
Beberapa aturan LANG_proto_library mengizinkan penentuan toolchain yang akan digunakan menggunakan flag command line;
lihat dokumentasinya.
Biasanya Anda tidak boleh menulis aturan semacam itu kecuali jika Anda ingin menyesuaikan compiler Java.
Tidak ada compiler. proto-compiler diambil dari aturan proto_library yang kami lampirkan. Instance ini
diteruskan sebagai flag command line ke Blaze.
Beberapa fitur mengharuskan proto-compiler 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 diisi Nama unik untuk target ini. |
allowlist_different_package
|
Label; defaultnya adalah |
blacklisted_protos
|
Daftar label; defaultnya adalah srcs dari
blacklisted_protos .
Ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, seperti
any.proto .
|
command_line
|
String; wajib diisi Nilai ini akan diteruskan ke proto-compiler untuk membuat kode. Hanya menyertakan bagian khusus untuk pembuat kode/plugin ini (misalnya, tidak menyertakan parameter -I)
|
mnemonic
|
String; defaultnya adalah |
output_files
|
String; defaultnya adalah $(OUT) di command_line , baik dengan
jalur ke satu file atau direktori output jika ada beberapa file.
Nilai yang mungkin adalah: "single", "multiple".
|
plugin
|
Label; defaultnya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; defaultnya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; defaultnya adalah |
protoc_minimal_do_not_use
|
Label; defaultnya adalah |
runtime
|
Label; defaultnya adalah |
toolchain_type
|
Label; defaultnya adalah |