Aturan
proto_lang_Toolchain
Lihat sumber aturanproto_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)
Jika menggunakan Bazel, harap muat aturan dari https://github.com/bazelbuild/rules_proto.
Menentukan cara aturan LANG_proto_library (misalnya, java_proto_library
) harus memanggil
compiler proto.
Beberapa aturan LANG_proto_library memungkinkan penentuan toolchain yang akan digunakan menggunakan flag command line;
baca 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 dilampirkan. File ini diteruskan sebagai flag command line ke Blaze.
Beberapa fitur memerlukan proto-compiler untuk dipanggil pada aturan proto_library itu sendiri.
Menerapkan compiler yang digunakan LANG_proto_library sama dengan yang ada
di 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 unik untuk target ini. |
blacklisted_protos
|
srcs blacklisted_protos .
Opsi ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, seperti
any.proto .
|
command_line
|
|
mnemonic
|
|
plugin
|
--plugin=protoc-gen-PLUGIN=
|
plugin_format_flag
|
--plugin=protoc-gen-PLUGIN=
|
progress_message
|
|
proto_compiler
|
|
runtime
|
|
library_proto
Lihat sumber aturanproto_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)
Tidak digunakan lagi. Sebagai gantinya, gunakan https://github.com/bazelbuild/rules_proto.
Gunakan proto_library
untuk menentukan library buffering protokol
yang dapat digunakan dari beberapa bahasa. proto_library
dapat tercantum dalam klausa deps
dari 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 deskriptor yang ditetapkan untuk pesan yang ditemukan oleh aturan. File ini adalah FileDescriptorSet
serial, yang
dijelaskan dalam
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Ini hanya berisi informasi tentang file .proto
yang langsung disebutkan oleh aturan
proto_library
; kumpulan set deskriptor transitif tersedia melalui
penyedia Starlark [ProtoInfo].transitive_descriptor_sets
.
Lihat dokumentasi di ProtoInfo.java
.
Pengaturan kode yang direkomendasikan:
- Satu aturan
proto_library
per file.proto
. - 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 berada dalam paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
proto_library lainnya yang menjadi target.
proto_library mungkin hanya bergantung pada target proto_library lainnya.
Ini mungkin tidak bergantung pada library bahasa tertentu.
|
srcs
|
.proto dan .protodevel yang diproses untuk membuat target. Daftar ini biasanya tidak kosong. Satu kasus penggunaan
yang mana srcs boleh kosong adalah alias-library. Ini adalah aturan proto_library yang memiliki satu atau beberapa proto_library lainnya di deps .
Pola ini dapat digunakan untuk mengekspor, misalnya, API publik dengan nama persisten.
|
exports
|
|
import_prefix
|
Saat ditetapkan, file sumber .proto dalam atribut Awalan dalam atribut |
strip_import_prefix
|
Jika ditetapkan, file sumber .proto pada atribut Jika itu adalah jalur relatif (tidak dimulai dengan garis miring), itu akan dianggap sebagai jalur relatif paket. Jika bersifat absolut, kolom ini akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut |