ルール
- cc_proto_library
- java_lite_proto_library
- java_proto_library
- proto_library
- py_proto_library
- proto_lang_toolchain
- proto_toolchain
cc_proto_library
ルールソースを表示cc_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
cc_proto_library
は、.proto
ファイルから C++ コードを生成します。
deps
は proto_library
ルールを参照する必要があります。
例:
cc_library(
name = "lib",
deps = [":foo_cc_proto"],
)
cc_proto_library(
name = "foo_cc_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは proto_library ルールのリスト。 |
java_lite_proto_library
ルールソースを表示java_lite_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
は、.proto
ファイルから Java コードを生成します。
deps
は proto_library
ルールを参照する必要があります。
例:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは proto_library ルールのリスト。 |
java_proto_library
ルールソースを表示java_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
は、.proto
ファイルから Java コードを生成します。
deps
は proto_library
ルールを参照する必要があります。
例:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは proto_library ルールのリスト。 |
proto_library
ルールソースを表示proto_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, toolchains, visibility)
Bazel を使用している場合は、 https://github.com/bazelbuild/rules_proto からルールを読み込んでください。
proto_library
を使用して、複数の言語から使用できるプロトコル バッファのライブラリを定義します。proto_library
は、サポートされているルールの deps
句(java_proto_library
など)にリストされる場合があります。
コマンドラインでコンパイルすると、proto_library
は foo-descriptor-set.proto.bin
という名前のファイルを作成します。これは、ルールの src のメッセージのディスクリプタ セットです。このファイルはシリアル化された FileDescriptorSet
です。詳細については、
https://developers.google.com/protocol-buffers/docs/techniques#self-description をご覧ください。
proto_library
ルールで直接参照される .proto
ファイルに関する情報のみが含まれます。伝播記述子セットのコレクションは、[ProtoInfo].transitive_descriptor_sets
Starlark プロバイダで利用できます。proto_info.bzl
のドキュメントをご覧ください。
推奨されるコードの編成:
.proto
ファイルごとに 1 つのproto_library
ルール。foo.proto
という名前のファイルは、同じパッケージにあるfoo_proto
という名前のルールに格納されます。foo_proto
という名前のproto_library
をラップする[language]_proto_library
はfoo_[language]_proto
という名前で、同じパッケージに配置する必要があります。
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは proto_library ルールのリスト。proto_library は、他の proto_library ターゲットにのみ依存できます。言語固有のライブラリに依存しない場合があります。 |
srcs
|
ラベルのリスト。デフォルトは .proto ファイルと .protodevel ファイルのリスト。通常、このリストは空ではありません。srcs を空にできるユースケースの 1 つは、エイリアス ライブラリです。これは、deps に 1 つ以上の他の proto_library を持つ proto_library ルールです。このパターンは、たとえば、永続的な名前で公開 API をエクスポートする場合に使用できます。 |
allow_exports
|
ラベル(デフォルトは |
exports
|
ラベルのリスト。デフォルトは |
import_prefix
|
文字列。デフォルトは 設定すると、このルールの この接頭辞が追加される前に、 |
strip_import_prefix
|
文字列。デフォルトは 設定すると、このルールの 相対パス(スラッシュで始まらないパス)の場合は、パッケージ相対パスとして扱われます。絶対パスの場合は、リポジトリ相対パスとして解釈されます。
|
py_proto_library
ルールソースを表示py_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは |
proto_lang_toolchain
ルールソースを表示proto_lang_toolchain(name, allowlist_different_package, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, plugin, plugin_format_flag, progress_message, protoc_minimal_do_not_use, restricted_to, runtime, tags, target_compatible_with, testonly, toolchain_type, toolchains, visibility)
Bazel を使用している場合は、 https://github.com/bazelbuild/rules_proto からルールを読み込んでください。
LANG_proto_library ルール(java_proto_library
)はプロトコンパイラを呼び出す必要があります。一部の LANG_proto_library ルールでは、コマンドライン フラグを使用して使用するツールチェーンを指定できます。ドキュメントをご覧ください。
通常、Java コンパイラをチューニングする場合を除き、このようなルールは記述しないでください。
コンパイラはありません。proto コンパイラは、アタッチする proto_library ルールから取得されます。これは、コマンドライン フラグとして Blaze に渡されます。一部の機能では、proto_library ルール自体でプロトコンパイラを呼び出す必要があります。LANG_proto_library が使用するコンパイラを proto_library
と同じに強制することをおすすめします。
例
簡単な例を挙げると、次のようなものです。
proto_lang_toolchain(
name = "javalite_toolchain",
command_line = "--javalite_out=shared,immutable:$(OUT)",
plugin = ":javalite_plugin",
runtime = ":protobuf_lite",
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
allowlist_different_package
|
ラベル(デフォルトは |
blacklisted_protos
|
ラベルのリスト。デフォルトは blacklisted_protos の srcs 属性のファイルにはコードは生成されません。これは、any.proto など、proto ランタイムにすでにリンクされている .proto ファイルに使用されます。 |
command_line
|
文字列(必須) この値はプロトコル コンパイラに渡され、コードが生成されます。このコード生成ツール/プラグインに固有の部分のみを含めます(例: -I パラメータは含めない)。
|
mnemonic
|
文字列。デフォルトは |
output_files
|
文字列。デフォルトは command_line の $(OUT) の形式を制御します。単一ファイルの場合はパス、複数ファイルの場合は出力ディレクトリです。有効な値は「single」、「multiple」です。 |
plugin
|
ラベル(デフォルトは --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
文字列。デフォルトは --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
文字列。デフォルトは |
protoc_minimal_do_not_use
|
ラベル(デフォルトは |
runtime
|
ラベル(デフォルトは |
toolchain_type
|
ラベル(デフォルトは |
proto_toolchain
ルールソースを表示proto_toolchain(name, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, mnemonic, output_files, progress_message, proto_compiler, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
command_line
|
文字列。デフォルトは |
mnemonic
|
文字列。デフォルトは |
output_files
|
文字列。デフォルトは |
progress_message
|
文字列。デフォルトは |
proto_compiler
|
ラベル(デフォルトは |