ルール
- 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 は、java_proto_library などのサポートされているルールの deps 句に記載されている場合があります。
コマンドラインでコンパイルすると、proto_library は foo-descriptor-set.proto.bin という名前のファイルを作成します。これは、ルールがソースとなるメッセージの記述子セットです。このファイルは、
https://developers.google.com/protocol-buffers/docs/techniques#self-description で説明されているシリアル化された FileDescriptorSet です。
これには、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)は、proto-compiler を呼び出す必要があります。一部の 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
         | 
        
                     ラベルのリスト。デフォルトは  blacklisted_protos の srcs 属性にあるファイルに対してコードは生成されません。これは、any.proto など、proto ランタイムにすでにリンクされている .proto ファイルに使用されます。 | 
      
          command_line
         | 
        
                     文字列。必須 この値は、コードを生成するために proto-compiler に渡されます。このコード生成ツール/プラグインに固有の部分のみを含めます(-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
         | 
        
                     ラベル。デフォルトは   |