如何在Bazel中查询规则的属性



如果我有

cc_binary(
name = "stooges",
srcs = [ "larry.cc", "curly.cc", "moe.cc" ],
)

是否存在将返回"larry.cc", "curly.cc", "moe.cc"的Bazel查询?

目前我唯一能想到的就是

$ bazel query --output=build //:stooges | perl -nwle 'print $1 if /srcss*=s*[([^]]*)]/'

获取srcs属性中列出的所有标签:

bazel query 'labels(srcs,//your_package:your_target)'

在您的案例中为bazel query 'labels(srcs,//:stooges)'

应返回:

//:larry.cc 
//:curly.cc
//:moe.cc

如果您想拥有所有hdrssrcs标签:

bazel query 'labels(srcs,//your_package:your_target) union labels(hdrs,//your_package:your_target)'

您还可以使用Bazel特性来查询源文件。更多详细信息请点击此处。

最新更新