ルール
- <ph type="x-smartling-placeholder"></ph> proto_library
- <ph type="x-smartling-placeholder"></ph> proto_lang_toolchain
proto_library
<ph type="x-smartling-placeholder"></ph> ルールのソースを表示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
という名前の
ルール「srcs」を検索します。ファイルはシリアル化された
FileDescriptorSet
(説明:
<ph type="x-smartling-placeholder"></ph>
https://developers.google.com/protocol-buffers/docs/techniques#self-description.
.proto
ファイルに関する情報のみが含まれています。
proto_library
ルールで言及されている推移的
gcloud SDK の
[ProtoInfo].transitive_descriptor_sets
Starlark プロバイダ。
proto_info.bzl
のドキュメントをご覧ください。
推奨されるコードの編成:
.proto
ファイルごとに 1 つのproto_library
ルール。foo.proto
という名前のファイルは、foo_proto
という名前のルールに含まれます。 同じパッケージに格納されますproto_library
をラップする[language]_proto_library
foo_proto
という名前をfoo_[language]_proto
とします。 同じパッケージ内にある必要があります。
引数
属性 | |
---|---|
name |
名前:必須 このターゲットの一意の名前。 |
deps
|
ラベルのリスト。デフォルトは proto_library ルールのリスト。
proto_library は他の proto_library にのみ依存できる
できます。言語固有のライブラリに依存しない場合があります。
|
srcs
|
ラベルのリスト。デフォルトは .proto ファイルと .protodevel ファイルのリスト。
ターゲットが作成されます。通常、空のリストです。1 つのユースケース
ここで、srcs は空にできます。alias-library です。これは
deps に他の proto_library が 1 つ以上ある proto_library ルール。
このパターンは、永続的な名前で公開 API をエクスポートします。
|
allow_exports
|
ラベル:デフォルトは |
exports
|
ラベルのリスト。デフォルトは |
import_prefix
|
String;デフォルトは 設定すると、このルールの
|
strip_import_prefix
|
String;デフォルトは 設定すると、このルールの 相対パス(スラッシュで始まらない)の場合は、パッケージ相対パスと見なされます。 1 です。絶対パスの場合は、リポジトリ相対パスとみなされます。
|
proto_lang_toolchain
<ph type="x-smartling-placeholder"></ph> ルールのソースを表示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
など)で呼び出されると、
proto コンパイラです。
一部の LANG_proto_library ルールでは、コマンドライン フラグを使用して、使用するツールチェーンを指定できます。
のドキュメントをご覧ください。
通常、このようなルールを作成すべきでないのは、 Java コンパイラを調整できます
コンパイラはありません。proto-compiler は、アタッチ先の proto_library ルールから取得されます。内容
コマンドライン フラグとして Blaze に渡されます。
一部の機能では、proto_library ルール自体で proto-compiler を呼び出す必要があります。
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
|
ラベルのリスト。デフォルトは srcs 属性内のファイルについては、コードは生成されません。
blacklisted_protos 。
これは、次のような proto ランタイムにすでにリンクされている .proto ファイルに使用されます。
any.proto 。
|
command_line
|
String;必須 この値は、コードを生成するためにプロト コンパイラに渡されます。部品のみを含める このコード生成ツール/プラグインに固有(例: -I パラメータを含めない) <ph type="x-smartling-placeholder">
|
mnemonic
|
String;デフォルトは |
output_files
|
String;デフォルトは command_line の $(OUT) の書式設定を次のいずれかで制御します。
単一のファイルへのパス、または複数のファイルの場合は出力ディレクトリ。
有効な値は「single」、「multiple」です。
|
plugin
|
ラベル:デフォルトは --plugin=protoc-gen-PLUGIN=<executable>.
|
plugin_format_flag
|
String;デフォルトは --plugin=protoc-gen-PLUGIN=<executable>.
|
progress_message
|
String;デフォルトは |
protoc_minimal_do_not_use
|
ラベル:デフォルトは |
runtime
|
ラベル:デフォルトは |
toolchain_type
|
ラベル:デフォルトは |