Aturan
proto_lang_toolchain
proto_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)
Tidak digunakan lagi. Sebagai gantinya, buka 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 penentuan toolchain yang akan digunakan menggunakan tanda command line;
lihat dokumentasinya.
Biasanya, Anda tidak boleh menulis aturan semacam itu kecuali jika Anda ingin menyesuaikan compiler Java.
Tidak ada compiler. Compiler proto diambil dari aturan proto_library yang kita lampirkan. Tanda ini diteruskan sebagai flag command line ke Blaze.
Beberapa fitur memerlukan compiler proto untuk dipanggil pada aturan proto_library itu sendiri.
Ada baiknya menerapkan compiler yang digunakan oleh 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 unik untuk target ini. |
blacklisted_protos
|
srcs dari
blacklisted_protos .
Metode ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, seperti any.proto .
|
command_line
|
|
mnemonic
|
|
output_files
|
$(OUT) dalam command_line diformat, baik melalui jalur ke satu file atau direktori output dalam kasus beberapa file.
Nilai yang mungkin adalah: "single", "multiple".
|
plugin
|
--plugin=protoc-gen-PLUGIN=
|
plugin_format_flag
|
--plugin=protoc-gen-PLUGIN=
|
progress_message
|
|
proto_compiler
|
|
runtime
|
|
proto_library
proto_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 dicantumkan 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 kumpulan deskripsi untuk pesan yang oleh aturan srcs. File ini adalah FileDescriptorSet
serial, yang
dijelaskan di
https://developers.google.com/protocol-buffers/docs/technicals#self-description.
Kumpulan 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 dalam 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 dalam paket yang sama. -
[language]_proto_library
yang menggabungkanproto_library
bernamafoo_proto
harus dipanggilfoo_[language]_proto
, dan berada di paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama unik untuk target ini. |
deps
|
proto_library lain yang menjadi dependensi 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
tempat srcs dapat kosong adalah library alias. Ini adalah aturan proto_library yang memiliki satu atau beberapa proto_library lainnya di deps .
Pola ini dapat digunakan untuk, misalnya, mengekspor API publik dengan nama persisten.
|
exports
|
|
import_prefix
|
Jika ditetapkan, file sumber .proto dalam atribut Awalan dalam atribut |
strip_import_prefix
|
Jika ditetapkan, file sumber .proto dalam atribut Jika jalurnya relatif (tidak dimulai dengan garis miring), garis itu diambil sebagai jalur relatif paket. Jika bersifat absolut, hal ini dianggap sebagai jalur repositori-relatif. Awalan dalam atribut |