config

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

例如:以下规则通过设置 build_setting 参数标记为构建设置。rule()具体来说,它是 int 类型的构建设置,并且是一个 flag,这意味着此构建设置可在命令行中调用。

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

成员

bool

BuildSetting config.bool(*, flag=False)

bool 类型的构建设置

参数

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

exec

ExecTransitionFactory config.exec(exec_group=None)

创建执行转换。

参数

参数 说明
exec_group 字符串;或 None; 默认值为 None
此转换将使用的执行平台的 exec 组的名称。如果未提供,此 exec 转换将使用目标默认执行平台。

int

BuildSetting config.int(*, flag=False)

整数类型的构建设置

参数

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

none

transition config.none()

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

string

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

字符串类型的构建设置

参数

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

string_list

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

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

参数

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

string_set

BuildSetting config.string_set(*, flag=False, repeatable=False)

字符串集类型的构建设置。此设置的值将是 Starlark 中的一组字符串。在命令行中,使用英文逗号分隔的值(如 --//my/setting=foo,bar)传递集合。

string_list 不同,元素的顺序无关紧要,并且仅保留每个元素的单个实例。对于不需要这些属性的标志,建议使用此设置,因为它可以通过避免不必要的配置分支来提高构建性能。 string_list

参数

参数 说明
flag bool; 默认值为 False
此构建设置是否可在命令行中调用。
repeatable bool; 默认值为 False
如果设置,则允许在命令行中多次设置此标志,而不是预期使用英文逗号分隔的值,并且每个单独的值都将被视为要添加到集合值的单个字符串。仅保留重复值的单个实例,并且插入顺序无关紧要。

target

transition config.target()

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