規則
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)
警告:多餘的動作已淘汰, 請改用規格。
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" ] 。 Mammonics 並不是公共介面。 且該機制和動作不會有所變更。 |
additional_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)
警告:多餘的動作已淘汰, 請改用規格。
指定為一般版本目標時,extra_action
規則不會產生任何有意義的輸出內容。這項工具可讓工具開發人員在其他動作圖表中插入額外動作,藉此遮蓋現有動作。
如要進一步瞭解如何啟用 extra_action
,請參閱 action_listener
一文。
extra_action
會以指令列的形式執行。指令列工具會存取具有通訊協定緩衝區 ($(EXTRA_ACTION_FILE) 的檔案,並提供遭遮蓋的原始動作詳細資訊。 以及原始動作可存取的所有輸入檔案。 如要進一步瞭解儲存在通訊協定緩衝區中的資料,請參閱 Extra_actions_base.proto。每個 Proto 檔案都包含 ExtraActionInfo 訊息。
和其他動作一樣,沙箱中應採取額外動作,因此應妥善處理。
引數
屬性 | |
---|---|
name |
此目標的專屬名稱。 你可以在label 的 action_listener 規則的 extra_actions 引數中參照這項規則。
|
cmd
|
例如 genrule cmd 屬性,但有下列差異:
|
out_templates
|
extra_action 指令產生的檔案範本清單。 範本可以使用下列變數:
|
requires_action_output
|
extra_action 要求原始動作的輸出結果會以此 extra_action 形式輸入。 設為 true (預設為 false) 時,additional_action 會假設原始動作輸出內容已加入輸入內容中。 |
tools
|
tool 依附元件清單。
詳情請參閱依附元件的定義。
建構系統可確保系統在執行 所有工具和資料依附元件都會合併到單一樹狀結構中,並在指令中使用相對路徑。工作目錄會成為統一樹狀結構的根目錄。 |