config

这是一个用于创建配置转换和 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 设置实现函数中对该列表进行后处理。

string_set

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

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

string_list 不同,元素的顺序无关紧要,并且系统只会保留每个元素的单个实例。对于不需要这些属性的标志,建议使用此方法,而不是 string_list,因为此方法可以避免不必要的配置分支,从而提高 build 性能。

参数

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

目标

transition config.target()

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