config

报告问题 查看来源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

这是一个顶级模块,用于创建配置转换和 build 设置描述符,以描述规则属于哪种 build 设置(如果有)。

例如:通过设置 rule() 函数的 build_setting 参数,将以下规则标记为 build 设置。具体而言,它是一种 int 类型的 build 设置,属于 flag,这意味着此 build 设置可在命令行中调用。

  my_rule = rule(
    implementation = _impl,
    build_setting = config.int(flag = True),
    ...
  )

成员

bool

BuildSetting config.bool(flag=False)

一种布尔类型的 build 设置

参数

参数 说明
flag bool; 默认值为 False
相应 build 设置是否可在命令行中调用。

exec

ExecTransitionFactory config.exec(exec_group=None)

创建执行过渡。

参数

参数 说明
exec_group string; or None; default is None
执行组的名称,相应过渡将使用该执行组的执行平台。如果未提供,此执行转换将使用目标的默认执行平台。

int

BuildSetting config.int(flag=False)

整数类型的 build 设置

参数

参数 说明
flag bool; 默认值为 False
相应 build 设置是否可在命令行中调用。

transition config.none()

创建一种过渡,用于移除所有配置,取消设置所有标志。适用于依赖项仅包含数据,不包含需要构建的代码,但只需分析一次的情况。

字符串

BuildSetting config.string(flag=False, allow_multiple=False)

字符串类型的 build 设置

参数

参数 说明
flag bool; 默认值为 False
相应 build 设置是否可在命令行中调用。
allow_multiple 布尔值; 默认值为 False
已弃用,请改用 repeatable = Truestring_list 设置。如果设置了此标志,则允许在命令行中多次设置此标志。在过渡和 build 设置实现函数中访问的标志值将是字符串列表。插入顺序和重复值都会保留。如果需要不同的行为,可以在 build 设置实现函数中对该列表进行后处理。

string_list

BuildSetting config.string_list(flag=False, repeatable=False)

字符串列表类型的 build 设置。在命令行中,使用以英文逗号分隔的值传递列表,例如 --//my/setting=foo,bar

参数

参数 说明
flag bool; 默认值为 False
相应 build 设置是否可在命令行中调用。
repeatable bool;默认值为 False
如果设置,则允许在命令行中多次设置此标志,每个单独的值都将作为单个字符串添加到列表值中,而不是期望使用英文逗号分隔的值。插入顺序和重复值都会保留。如果需要不同的行为,可以在 build 设置实现函数中对该列表进行后处理。

目标

transition config.target()

创建目标过渡。这是一种无操作转换,适用于需要转换对象但实际上不想更改任何内容的情况。相当于 attr.label() 中的 cfg = "target"