我希望能够在 Bazel BUILD 文件中执行以下操作:
alpha(
name = "hello world",
color = "blue"
)
beta(
name = "hello again"
)
Wherealpha
和beta
是自定义规则。我希望beta
能够访问规则的color
属性,而无需添加标签属性。在 Bazel 查询中,我可以执行以下操作:alpha
bazel query 'kind(beta, siblings(kind(alpha, //...)))'
这给了我beta
并排的alpha
。我可以从beta
规则的实现功能中以某种方式实现相同的目标吗?
def _beta_rule_impl(ctx):
# This does not exist, I wish it did: ctx.siblings(kind='alpha')
我已经看到这是用这样的标签完成的
beta(
name = "hello again",
alpha_link = ":hello world" # explicitly linking
)
但我觉得这有点冗长,特别是因为有兄弟查询支持。