规则
action_listener
查看规则源代码action_listener(name, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, package_metadata, restricted_to, tags, target_compatible_with, testonly, visibility)
警告: 额外操作已被弃用。请改用 方面 。
An action_listener 规则本身不会产生任何输出。
相反,它允许工具开发者通过提供从操作到 extra_action
的映射,将
extra_action 插入到构建系统中。
此规则的实参将操作助记符映射到
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, aspect_hints, cmd, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, licenses, out_templates, package_metadata, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
警告: 额外操作已被弃用。请改用 方面 。
当指定为常规 build 目标时,extra_action 规则不会产生任何有意义的输出
。相反,它允许工具开发者
将额外的操作插入到 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 依赖项列表。
如需了解详情,请参阅依赖项的定义。
构建系统可确保在运行
所有工具及其数据依赖项都整合到单个树中 命令可以在其中使用相对路径。工作目录将是该统一树的根目录。 |