规则
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)
警告: 额外操作已被弃用。请改用 方面 。
An action_listener 规则本身不会产生任何输出。
相反,它允许工具开发者通过提供从操作到 extra_action
的映射,将
extra_action 插入到 build 系统中。
此规则的实参将操作助记符映射到
extra_action 规则。
通过指定选项
--experimental_action_listener=<label>,
build 将使用指定的 action_listener 将
extra_action 插入到 build 图中。
示例
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 应添加到 build 图中的 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)
警告: 额外操作已被弃用。请改用 方面 。
当 extra_action 规则指定为常规 build 目标时,不会产生任何有意义的输出
。相反,它允许工具开发者
将额外的操作插入到 build 图中,以替代现有操作。
如需详细了解如何启用 extra_actions,请参阅 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 可以假定原始操作输出作为其输入的一部分可用。 |
tools
|
此规则的 tool 依赖项列表。
如需了解详情,请参阅依赖项的定义。
build 系统会确保在运行
所有工具及其数据依赖项都整合到单个树中 命令可以在其中使用相对路径。工作目录将 是该统一树的根。 |