表示跨依赖项边缘的配置过渡。例如,如果 //package:foo
依赖于具有配置过渡的 //package:bar
,那么这两个目标的配置将有所不同://package:bar
的过渡将由 //package:foo
的过渡决定,具体取决于由转换对象定义的函数。
会员
过渡
transition transition(implementation, inputs, outputs)一种转换,用于读取一组输入 build 设置并编写一组输出 build 设置。
例如:
def _transition_impl(settings, attr): # This transition just reads the current CPU value as a demonstration. # A real transition could incorporate this into its followup logic. current_cpu = settings["//command_line_option:cpu"] return {"//command_line_option:compilation_mode": "dbg"} build_in_debug_mode = transition( implementation = _transition_impl, inputs = ["//command_line_option:cpu"], outputs = ["//command_line_option:compilation_mode"], )
如需了解详情,请参阅此处。
参数
参数 | 说明 |
---|---|
implementation
|
必需 实现此转换的函数。此函数始终有两个参数: settings 和 attr 。settings 参数是一个字典,其键集由输入参数定义。因此,对于每个构建设置 --//foo=bar ,如果 inputs 包含 //foo ,则 settings 将具有一个 settings['//foo']='bar' 条目。
此函数必须从 build 设置标识符返回 build 设置值的 |
inputs
|
sequence of strings ;必需可通过此转换读取的 build 设置列表。这将成为实现函数参数的设置参数的键集。 |
outputs
|
sequence of strings ;必需可通过此转换写入的 build 设置列表。它必须是此转换所返回的字典键集的超集。 |