ルール
proto_lang_toolchain
ルールのソースを表示proto_lang_toolchain(name, blacklisted_protos, command_line, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, mnemonic, 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-compiler を呼び出す必要があります。一部の 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
|
blacklisted_protos の srcs 属性内のファイルについては、コードは生成されません。
これは、すでに proto ランタイムにリンクされている any.proto などの .proto ファイルに使用されます。
|
command_line
|
|
mnemonic
|
|
plugin
|
--plugin=protoc-gen-PLUGIN=
|
plugin_format_flag
|
--plugin=protoc-gen-PLUGIN=
|
progress_message
|
|
proto_compiler
|
|
runtime
|
|
proto_library
ルールのソースを表示proto_library(name, deps, srcs, data, 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
は、java_proto_library
などのサポートされているルールの deps
句に含めることができます。
コマンドラインでコンパイルすると、proto_library
によって foo-descriptor-set.proto.bin
という名前のファイルが作成されます。これは、ルールがスタックするメッセージの記述子セットです。このファイルはシリアル化された FileDescriptorSet
です。詳しくは、https://developers.google.com/protocol-buffers/docs/techniques#self-description をご覧ください。
これは、proto_library
ルールによって直接言及される .proto
ファイルに関する情報のみを含みます。推移的記述子セットのコレクションは [ProtoInfo].transitive_descriptor_sets
Starlark プロバイダを介して入手できます。ProtoInfo.java
のドキュメントをご覧ください。
推奨されるコード構成:
-
.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 に他の proto_library を 1 つ以上含む proto_library ルールです。
このパターンは、永続的な名前で公開 API をエクスポートする場合などに使用できます。 |
exports
|
|
import_prefix
|
この属性を設定すると、このルールの
|
strip_import_prefix
|
設定すると、このルールの 相対パスで(スラッシュで始まらない場合)パッケージ相対パスと見なされます。絶対パスである場合、リポジトリの相対パスとして認識されます。
|