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, output_files, plugin, plugin_format_flag, progress_message, proto_compiler, restricted_to, runtime, tags, target_compatible_with, testonly, visibility)
Jika menggunakan Bazel, 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;
baca dokumentasi mereka.
Biasanya, Anda tidak boleh menulis aturan semacam itu kecuali jika ingin menyesuaikan compiler Java.
Tidak ada compiler. proto-compiler diambil dari aturan proto_library yang kami lampirkan. Flag 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. |
blacklisted_protos
|
Daftar label; default-nya adalah srcs
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 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 adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String; default-nya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; default-nya adalah |
proto_compiler
|
Label; default-nya adalah |
runtime
|
Label; default adalah |
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, 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
mungkin dicantumkan
dalam klausa deps
aturan yang didukung, seperti java_proto_library
.
Jika dikompilasi di command line, proto_library
akan membuat file bernama
foo-descriptor-set.proto.bin
, yang merupakan kumpulan deskripsi untuk
mengirim pesan ke src aturan. 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
proto_library
aturan; 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 terletak di paket yang sama. -
[language]_proto_library
yang menggabungkanproto_library
bernamafoo_proto
harus dipanggilfoo_[language]_proto
, dan berada dalam paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama; wajib diisi 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 lainnya.
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. Satu kasus penggunaan
dengan srcs yang boleh kosong adalah library-alias. Ini adalah
aturan proto_library 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 adalah |
exports
|
Daftar label; default-nya adalah |
import_prefix
|
String; default-nya adalah Jika ditetapkan, file sumber .proto di atribut Awalan dalam atribut |
strip_import_prefix
|
String; default-nya adalah Jika ditetapkan, file sumber .proto di atribut Jika jalur relatif (tidak dimulai dengan garis miring), jalur itu akan diambil sebagai paket-relatif satu. Jika bersifat absolut, jalur ini akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut |