プロトコル バッファ ルール

問題を報告 ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ルール

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-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

名前:必須

このターゲットの一意の名前。

blacklisted_protos

ラベルのリスト。デフォルトは [] です

srcs 属性内のファイルについては、コードは生成されません。 blacklisted_protos。 これは、次のような proto ランタイムにすでにリンクされている .proto ファイルに使用されます。 any.proto
command_line

String;必須

この値は、コードを生成するためにプロト コンパイラに渡されます。部品のみを含める このコード生成ツール/プラグインに固有(例: -I パラメータを含めない)
  • $(OUT) は LANG_proto_library 固有です。ルールでは、 解釈する必要がありますたとえば Java の場合、「$(OUT)」は「 作成する src-jar ファイル名。
mnemonic

String;デフォルトは "GenProto" です。

この値は、protoc アクションのニモニックとして設定されます。
output_files

String;デフォルトは "legacy" です。

command_line$(OUT) の書式設定を次のいずれかで制御します。 単一のファイルへのパス、または複数のファイルの場合は出力ディレクトリ。 有効な値は「single」、「multiple」です。
plugin

ラベル:デフォルトは None です

指定すると、proto-compiler を呼び出すアクションで使用可能になり、 渡されます。 --plugin=protoc-gen-PLUGIN=<executable>.
plugin_format_flag

String;デフォルトは "" です。

指定した場合、この値はプラグインを使用する proto-compiler に渡されます。この値は、 プラグインの実行可能ファイルに置き換えられる 1 つの %s が含まれている。 --plugin=protoc-gen-PLUGIN=<executable>.
progress_message

String;デフォルトは "Generating proto_library %{label}" です。

この値は、protoc アクションの進行状況メッセージとして設定されます。
proto_compiler

ラベル:デフォルトは None です

proto コンパイラ実行可能ファイル。 指定すると、このターゲットがコードを生成するためのプロト コンパイラとして使用されます。
runtime

ラベル:デフォルトは None です

生成されたコードのコンパイル対象となる言語固有のライブラリ。 正確な動作は LANG_proto_library 固有です。 たとえば、Java はランタイムに対してコンパイルする必要があります。

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)

非推奨です。<ph type="x-smartling-placeholder"></ph>を使用してください https://github.com/bazelbuild/rules_proto をご覧ください。

proto_library を使用してプロトコル バッファのライブラリを定義する 複数の言語で使用できますproto_library がリストに表示される場合があります。 サポートされているルール(java_proto_library など)の deps 句内。

proto_library は、コマンドラインでコンパイルすると、 foo-descriptor-set.proto.bin: これは Pod に実装された ルール「srcs」に メッセージを送信しますファイルはシリアル化された FileDescriptorSet であり、 説明 https://developers.google.com/protocol-buffers/docs/techniques#self-description.

URL が直接言及した .proto ファイルに関する情報のみが含まれます。 proto_library ルール、推移的記述子セットのコレクションは、 [ProtoInfo].transitive_descriptor_sets Starlark プロバイダ。 ProtoInfo.java のドキュメントをご覧ください。

推奨されるコードの編成:

  • .proto ファイルごとに 1 つの proto_library ルール。
  • foo.proto という名前のファイルは foo_proto という名前のルールに含まれ、 同じパッケージに入っています。
  • 次の名前の proto_library をラップする [language]_proto_library foo_proto を呼び出す必要があります。 foo_[language]_proto。同じパッケージ内にある。

引数

属性
name

名前:必須

このターゲットの一意の名前。

deps

ラベルのリスト。デフォルトは [] です

ターゲットが依存する他の proto_library ルールのリスト。 proto_library は、他の Pod に proto_library 個のターゲット。 言語固有のライブラリに依存しない場合があります。
srcs

ラベルのリスト。デフォルトは [] です

次の .proto ファイルと .protodevel ファイルのリスト。 ターゲットが作成されます。通常、空のリストです。1 つのユースケース ここで、srcs は空にできます。alias-library です。これは deps に他の proto_library が 1 つ以上ある proto_library ルール。 このパターンは、永続的な名前で公開 API をエクスポートします。
allow_exports

ラベル:デフォルトは None です

proto ライブラリの再エクスポートや lang_proto_library のみをサポートしています。
exports

ラベルのリスト。デフォルトは [] です

「import public」で参照できる proto_library ターゲットのリスト(proto 内) あります。
import_prefix

String;デフォルトは "" です。

このルール内の .proto ファイルのパスに追加する接頭辞。

設定すると、このルールの srcs 属性の .proto ソースファイル リポジトリ相対パスの先頭に付加されたこの属性の値。

strip_import_prefix 属性の接頭辞は、これより前に削除されます。 接頭辞が追加されます。

strip_import_prefix

String;デフォルトは "" です。

このルール内の .proto ファイルのパスから削除する接頭辞。

設定すると、このルールの srcs 属性の .proto ソースファイル この接頭辞が切り捨てられたパスで アクセスできます

相対パス(スラッシュで始まらない)の場合は、パッケージ相対パスと見なされます。 1 です。絶対パスの場合は、リポジトリ相対パスとみなされます。

import_prefix 属性の接頭辞は、この接頭辞の後に追加されます。 削除されます。