Aturan
- cc_proto_library
- java_lite_proto_library
- java_proto_library
- proto_library
- py_proto_library
- proto_lang_toolchain
- proto_toolchain
cc_proto_library
Lihat sumber aturancc_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
cc_proto_library
menghasilkan kode C++ dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
cc_library(
name = "lib",
deps = [":foo_cc_proto"],
)
cc_proto_library(
name = "foo_cc_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library
untuk menghasilkan kode C++.
|
java_lite_proto_library
Lihat sumber aturanjava_lite_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
menghasilkan kode Java dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library untuk membuat kode Java.
|
java_proto_library
Lihat sumber aturanjava_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
menghasilkan kode Java dari file .proto
.
deps
harus mengarah ke aturan proto_library
.
Contoh:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library untuk membuat kode Java.
|
proto_library
Lihat sumber aturanproto_library(name, deps, srcs, data, allow_exports, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, exports, features, import_prefix, licenses, package_metadata, restricted_to, strip_import_prefix, tags, target_compatible_with, testonly, toolchains, visibility)
Gunakan proto_library
untuk menentukan library buffer protokol yang dapat digunakan dari beberapa bahasa. proto_library
dapat dicantumkan
dalam klausa deps
dari aturan yang didukung, seperti
java_proto_library
.
Saat dikompilasi di command line, proto_library
akan membuat file
bernama foo-descriptor-set.proto.bin
, yang merupakan set deskriptor untuk
pesan yang di-src oleh aturan. File adalah FileDescriptorSet
yang diserialisasi, yang dijelaskan di
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
Hanya berisi informasi tentang file .proto
yang disebutkan secara langsung oleh aturan proto_library
; kumpulan set deskriptor transitif tersedia melalui penyedia Starlark [ProtoInfo].transitive_descriptor_sets
.
Lihat dokumentasi di proto_info.bzl
.
Organisasi kode yang direkomendasikan:
- Satu aturan
proto_library
per file.proto
. - File bernama
foo.proto
akan berada dalam aturan bernamafoo_proto
, yang berada di paket yang sama. [language]_proto_library
yang membungkusproto_library
bernamafoo_proto
harus disebutfoo_[language]_proto
, dan berada di paket yang sama.
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah proto_library lainnya yang bergantung pada target.
proto_library hanya dapat bergantung pada target proto_library
lainnya. Mungkin tidak bergantung pada library khusus bahasa.
|
srcs
|
Daftar label; defaultnya adalah .proto dan .protodevel yang diproses untuk membuat target. Ini biasanya berupa daftar yang tidak kosong. Salah satu kasus penggunaan
ketika srcs dapat kosong adalah alias-library. Ini adalah aturan
proto_library yang memiliki satu atau beberapa proto_library lain di deps .
Pola ini dapat digunakan untuk, misalnya, mengekspor API publik dengan nama persisten.
|
allow_exports
|
Label; defaultnya adalah |
exports
|
Daftar label; defaultnya adalah |
import_prefix
|
String; default-nya adalah Jika disetel, file sumber .proto dalam atribut Awalan dalam atribut |
strip_import_prefix
|
String; default-nya adalah Jika disetel, file sumber .proto dalam atribut Jika berupa jalur relatif (tidak diawali dengan garis miring), jalur tersebut dianggap sebagai jalur relatif paket. Jika absolut, jalur tersebut dipahami sebagai jalur relatif repositori. Awalan dalam atribut |
py_proto_library
Lihat sumber aturanpy_proto_library(name, deps, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
deps
|
Daftar label; defaultnya adalah |
proto_lang_toolchain
Lihat sumber aturanproto_lang_toolchain(name, allowlist_different_package, aspect_hints, blacklisted_protos, command_line, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, mnemonic, output_files, package_metadata, 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, muat aturan dari 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. Proto-compiler diambil dari aturan proto_library yang kita lampirkan. Nilai ini diteruskan sebagai tanda command line ke Blaze.
Beberapa fitur memerlukan pemanggilan proto-compiler 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 Nama unik untuk target ini. |
allowlist_different_package
|
Label; defaultnya adalah |
blacklisted_protos
|
Daftar label; defaultnya adalah srcs dari
blacklisted_protos .
Hal ini digunakan untuk file .proto yang sudah ditautkan ke runtime proto, seperti
any.proto .
|
command_line
|
String; wajib Nilai ini akan diteruskan ke proto-compiler untuk menghasilkan kode. Hanya sertakan bagian yang khusus untuk generator/plugin kode ini (misalnya, jangan sertakan parameter -I)
|
mnemonic
|
String; default-nya adalah |
output_files
|
String; default-nya adalah $(OUT) dalam command_line diformat, baik berdasarkan
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; default-nya adalah --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String; default-nya adalah |
protoc_minimal_do_not_use
|
Label; defaultnya adalah |
runtime
|
Label; defaultnya adalah |
toolchain_type
|
Label; defaultnya adalah |
proto_toolchain
Lihat sumber aturanproto_toolchain(name, aspect_hints, command_line, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, mnemonic, output_files, package_metadata, progress_message, proto_compiler, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Argumen
Atribut | |
---|---|
name |
Nama; wajib Nama unik untuk target ini. |
command_line
|
String; default-nya adalah |
mnemonic
|
String; default-nya adalah |
output_files
|
String; default-nya adalah |
progress_message
|
String; default-nya adalah |
proto_compiler
|
Label; defaultnya adalah |