如何将别名值传递给 bazel 函数?
How can I pass an alias value to a bazel function?
我在 BUILD 文件中定义了以下别名:
alias(
name = "platform",
actual = select({
":macos_x86_64": "macos_x86_64",
":linux_x86_64": "linux_x86_64",
":linux_aarch64": "linux_aarch64",
}),
visibility = ["//visibility:public"],
)
如何将“实际”字符串传递给这样的函数?
def myFunction(platform): ...
我正在尝试最天真的事情,它不明白这是一个别名,而不是一个字符串:
myFunction("//bazel/config:platform")
def myFunction
创建一个 macro, not a rule。宏不能访问 select
的值,只能向其添加其他选择并将其传递给规则。另一种思考差异的方法:宏可以做的事情很少不能直接在 BUILD 文件中完成。
另外,alias.actual is a Label
. Even when you pass it to a rule, the values need to be valid labels, and will be handled as such. You can use Label.name 找回名字。
我在 BUILD 文件中定义了以下别名:
alias(
name = "platform",
actual = select({
":macos_x86_64": "macos_x86_64",
":linux_x86_64": "linux_x86_64",
":linux_aarch64": "linux_aarch64",
}),
visibility = ["//visibility:public"],
)
如何将“实际”字符串传递给这样的函数?
def myFunction(platform): ...
我正在尝试最天真的事情,它不明白这是一个别名,而不是一个字符串:
myFunction("//bazel/config:platform")
def myFunction
创建一个 macro, not a rule。宏不能访问 select
的值,只能向其添加其他选择并将其传递给规则。另一种思考差异的方法:宏可以做的事情很少不能直接在 BUILD 文件中完成。
另外,alias.actual is a Label
. Even when you pass it to a rule, the values need to be valid labels, and will be handled as such. You can use Label.name 找回名字。