ルール
action_listener
ルールのソースを表示action_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
警告: 追加アクションは非推奨です。アスペクトを使用してください。 aspects instead.
action_listener ルール自体は出力を生成しません。
代わりに、ツール デベロッパーは、アクションから extra_action
へのマッピングを提供することで、ビルドシステムに
extra_action を挿入できます。
このルールの引数は、アクションのニーモニックを
extra_action ルールにマッピングします。
オプションを指定すると、ビルドは指定された action_listener を使用して、ビルドグラフに extra_action を挿入します。--experimental_action_listener=<label>
例
action_listener(
name = "index_all_languages",
mnemonics = [
"Javac",
"CppCompile",
"Python",
],
extra_actions = [":indexer"],
)
action_listener(
name = "index_java",
mnemonics = ["Javac"],
extra_actions = [":indexer"],
)
extra_action(
name = "indexer",
tools = ["//my/tools:indexer"],
cmd = "$(location //my/tools:indexer)" +
"--extra_action_file=$(EXTRA_ACTION_FILE)",
)
引数
| 属性 | |
|---|---|
name |
名前(必須) このターゲットの一意の名前。 |
extra_actions
|
ラベルのリスト(必須) このaction_listener がビルドグラフに追加する extra_action ターゲットのリスト。例: [ "//my/tools:analyzer" ].
|
mnemonics
|
文字列のリスト(必須) このaction_listener がリッスンするアクションのニーモニックのリスト(例: [ "Javac" ])。ニーモニックはパブリック インターフェースではありません。 ニーモニックとそのアクションが変更されないという保証はありません。 |
extra_action
ルールのソースを表示extra_action(name, data, cmd, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, out_templates, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
警告: 追加アクションは非推奨です。アスペクトを使用してください。 aspects instead.
extra_action ルールは、通常のビルドターゲットとして指定しても意味のある出力を生成しません
。代わりに、ツール デベロッパーは、既存のアクションをシャドウする追加のアクションをビルドグラフに挿入できます。
action_listener を有効にする方法については、
をご覧ください。
extra_action
extra_action はコマンドラインとして実行されます。コマンドライン ツールは、シャドウしている元のアクションの詳細情報を含むプロトコル バッファを含むファイルに $(EXTRA_ACTION_FILE)
としてアクセスできます。
また、元のアクションがアクセスできるすべての入力ファイルにもアクセスできます。
プロトコル バッファに保存されるデータの詳細については、extra_actions_base.proto
をご覧ください。各 proto ファイル
には ExtraActionInfo メッセージが含まれています。
他のすべてのアクションと同様に、追加アクションはサンドボックス化されるため、その処理に対応するように設計する必要があります。
引数
| 属性 | |
|---|---|
name |
名前(必須) このターゲットの一意の名前。 このルールは、 action_listener ルールの extra_actions 引数で label を使用して参照できます。 |
cmd
|
文字列(必須) 実行するコマンド。genrule cmd attribute と同様ですが、次の点が異なります。
|
out_templates
|
文字列のリスト(デフォルトは extra_action コマンドによって生成されるファイルのテンプレートのリスト。
テンプレートでは、次の変数を使用できます。
|
requires_action_output
|
ブール値(デフォルトは extra_action では、元のアクションの出力がこの extra_action の入力として存在する必要があることを示します。true の場合(デフォルトは false)、extra_action は、元のアクションの出力が入力の一部として使用可能であることを前提とできます。 |
tools
|
このルールの tool 依存関係のリスト。
詳細については、依存関係の定義をご覧ください。
ビルドシステムは、
すべてのツールとそのデータ依存関係は、コマンドが相対パスを使用できる単一のツリー に統合されます。作業ディレクトリは、その統合ツリーのルートになります。 |