gpt4 book ai didi

build - 如何将宏应用于bazel中的目标名称数组?

转载 作者:行者123 更新时间:2023-12-03 23:37:23 24 4
gpt4 key购买 nike

我有一个 bazel 包,它必须使用我为这种情况编写的相同宏生成大量可执行文件(示例)。是否可以将其应用于目标名称数组而不是像这样一一列出?

simple_program(
name = "example1",
)

simple_program(
name = "example2",
)

simple_program(
name = "example3",
)

最佳答案

只写出您需要的所有规则的一个优点是您的构建文件更具声明性。构建文件(宏等)中的逻辑越多,就越难弄清楚发生了什么。使用声明性构建文件,您可以使用 Buildozer 等工具进行大规模重构。

也就是说,有很多方法可以满足您的要求。一种是在构建文件中使用列表推导:

[simple_rule(name = n) for n in [
"example1",
"example2",
"example3",
]]

另一种是使用宏,例如:

defs.bzl:

def generate_simple_rules(names):
for name in names:
simple_rule(name = name)

构建:

load("//:defs.bzl", "generate_simple_rules")
generate_simple_rules(["example1", "example2", "example3"])

关于build - 如何将宏应用于bazel中的目标名称数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48510907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com