ルール
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 を使用してください。
action_listener
ルール自体は出力を生成しません。代わりに、アクションから extra_action
へのマッピングを提供することで、ツール デベロッパーが extra_action
をビルドシステムに挿入できるようにします。
このルールの引数は、アクションのニーモニックを extra_action
ルールにマッピングします。
--experimental_action_listener=<label>
オプションを指定すると、ビルドは指定された action_listener
を使用して extra_action
をビルドグラフに挿入します。
例
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 を使用してください。
extra_action
ルールは、通常のビルド ターゲットとして指定された場合、意味のある出力を生成しません。代わりに、ツール デベロッパーが既存のアクションをシャドーイングする追加のアクションをビルドグラフに挿入できるようにします。
extra_action
を有効にする方法について詳しくは、action_listener
をご覧ください。
extra_action
はコマンドラインとして実行されます。コマンドライン ツールは、シャドーイングする元のアクションに関する詳細情報を含むプロトコル バッファを含むファイルに $(EXTRA_ACTION_FILE) としてアクセスします。また、元のアクションがアクセスできるすべての入力ファイルにもアクセスできます。プロトコル バッファ内に保存されるデータの詳細については、extra_actions_base.proto をご覧ください。各 proto ファイルには ExtraActionInfo メッセージが含まれています。
他のすべてのアクションと同様に、追加アクションはサンドボックス化されているため、その処理を想定して設計する必要があります。
引数
属性 | |
---|---|
name |
名前(必須) このターゲットの一意の名前。 このルールは、 action_listener ルールの extra_actions 引数で label として参照できます。 |
cmd
|
文字列。必須 実行するコマンド。genrule cmd 属性と同様ですが、次の点が異なります。
|
out_templates
|
文字列のリスト。デフォルトは extra_action コマンドで生成されたファイルのテンプレートのリスト。テンプレートでは、次の変数を使用できます。
|
requires_action_output
|
ブール値。デフォルトは extra_action では、元の処理の出力がこの extra_action の入力として必要であることを示します。true の場合(デフォルトは false)、extra_action は、元の action の出力が入力の一部として使用可能であることを前提とできます。 |
tools
|
ラベルのリスト。デフォルトは tool 依存関係のリスト。詳細については、依存関係の定義をご覧ください。
ビルドシステムは、 すべてのツールとそのデータ依存関係は、コマンドが相対パスを使用できる単一のツリーに統合されます。作業ディレクトリは、その統合ツリーのルートになります。 |