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, 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;
baca dokumentasi mereka.
Biasanya Anda tidak perlu menulis aturan seperti itu kecuali jika Anda ingin menyesuaikan compiler Java Anda.
Tidak ada compiler. proto-compiler diambil dari aturan proto_library yang kami lampirkan. Penting
diteruskan sebagai penanda
baris perintah ke Blaze.
Beberapa fitur mengharuskan proto-compiler dipanggil pada aturan proto_library itu sendiri.
Sebaiknya terapkan compiler yang digunakan LANG_proto_library sama dengan
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 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-bagiannya khusus untuk pembuat kode/plugin ini (misalnya, tidak menyertakan parameter -I)
|
mnemonic
|
String; default-nya adalah |
output_files
|
String; default-nya adalah $(OUT) di command_line , baik dengan
jalur ke satu file atau direktori {i>
output<i} 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 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. Gunakan https://github.com/bazelbuild/rules_proto.
Menggunakan 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.proto
file. - File bernama
foo.proto
akan berada di 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 adalah proto_library lain yang diandalkan target.
proto_library mungkin hanya bergantung pada
proto_library target.
Ini mungkin tidak bergantung pada library bahasa tertentu.
|
srcs
|
Daftar label; default adalah .proto dan .protodevel yang
yang diproses untuk membuat target. Daftar ini biasanya 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, misalnya dan mengekspor api publik dengan nama persisten.
|
allow_exports
|
Label; default adalah |
exports
|
Daftar label; default 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 nilainya absolut, nilainya akan dipahami sebagai jalur relatif repositori. Awalan dalam atribut |