ルール
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)
Bazel を使用している場合は、 https://github.com/bazelbuild/rules_proto. からルールを読み込んでください。
LANG_proto_library ルール(java_proto_library) が
proto コンパイラを呼び出す方法を指定します。
LANG_proto_library ルールによっては、コマンドライン フラグを使用して使用するツールチェーンを指定できます。
詳しくは、ドキュメントをご覧ください。
通常、Java コンパイラを調整する場合を除き、このようなルールを作成する必要はありません。
コンパイラはありません。proto コンパイラは、アタッチする proto_library ルールから取得されます。Blaze にコマンドライン フラグとして渡されます。一部の機能では、proto_library ルール自体で proto コンパイラを呼び出す必要があります。
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 |
名前(必須) このターゲットの一意の名前。 |
blacklisted_protos
|
の srcs 属性のファイルに対してコードは生成されません。blacklisted_protosこれは、proto ランタイムにすでにリンクされている .proto ファイルに使用されます。たとえば、
any.proto.
|
command_line
|
文字列(必須) この値は、コードを生成するために proto コンパイラに渡されます。このコードジェネレータ/プラグインに固有の部分のみを含めます(-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
|
文字列(デフォルトは |
proto_compiler
|
ラベル(デフォルトは |
runtime
|
ラベル(デフォルトは |
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, visibility)
非推奨です。代わりに https://github.com/bazelbuild/rules_proto を使用してください。
proto_library を使用して、複数の言語で使用できるプロトコル バッファのライブラリを定義します。proto_library は、サポートされているルールの deps 句にリストできます。たとえば、java_proto_library などです。
コマンドラインでコンパイルすると、proto_library は
foo-descriptor-set.proto.bin という名前のファイルを作成します。これは、ルールの srcs のメッセージの記述子セットです。
このファイルはシリアル化された FileDescriptorSet であり、
https://developers.google.com/protocol-buffers/docs/techniques#self-description で説明されています。
.proto ファイルに関する情報のみが含まれます。推移的な記述子セットのコレクションは、[ProtoInfo].transitive_descriptor_sets Starlark プロバイダから取得できます。proto_libraryProtoInfo.java のドキュメントをご覧ください。
推奨されるコード構成:
-
proto_libraryファイルごとに 1 つの.protoルール。 -
foo.protoという名前のファイルは、同じパッケージにあるfoo_protoという名前のルールにあります。 -
[language]_proto_libraryという名前のproto_libraryをラップするfoo_protoはfoo_[language]_protoと呼ばれ、同じパッケージに配置する必要があります。
引数
| 属性 | |
|---|---|
name |
名前(必須) このターゲットの一意の名前。 |
deps
|
ターゲットが依存する他の proto_library ルールのリスト。
proto_library は、他の
proto_library ターゲットにのみ依存できます。
言語固有のライブラリに依存することはできません。
|
srcs
|
ターゲットを作成するために処理される .proto ファイルと .protodevel ファイルのリスト。通常、これは空ではないリストです。`srcs` が空になるユースケースの 1 つは、エイリアス ライブラリです。
これは、
`deps` に 1 つ以上の他の proto_library を持つ proto_library ルールです。
depsこのパターンを使用して、永続的な名前で公開 API をエクスポートできます。
|
allow_exports
|
ラベル(デフォルトは |
exports
|
proto ソースの「import public」で参照できる proto_library ターゲットのリスト。 |
import_prefix
|
文字列(デフォルトは 設定すると、このルールの この接頭辞が追加される前に、 |
strip_import_prefix
|
文字列(デフォルトは 設定すると、このルールの 相対パス(スラッシュで始まらない)の場合は、パッケージ相対パスとして扱われます。 絶対パスの場合は、リポジトリ相対パスとして扱われます。 この接頭辞が削除された後、 |