我正在尝试查询具有公共可见性的Bazel目标列表。我们的某些Bazel目标已visibility
明确指定,例如:
cc_library(
name = "xxx_util",
visibility = ["//visibility:public",],
...
)
Run Code Online (Sandbox Code Playgroud)
尽管大多数目标是隐式公共的,但是它们的BUILD
文件指定了默认的公共可见性,例如
package(default_visibility = ["//visibility:public"])
Run Code Online (Sandbox Code Playgroud)
我需要所有这些目标的列表,以便在构建Bazel工作区之后可以将其输出自动复制到特定位置。
我是Bazel的新手,无法解决查询问题...
Rub*_*ons 19
我认为前面的答案确实涵盖了可见性属性受限结果的属性查询。对于后代,我想补充一点,如果您只是想从当前目录中查找所有目标,您可以这样做:
bazel query ...
Run Code Online (Sandbox Code Playgroud)
看这个例子:https : //docs.bazel.build/versions/master/query-how-to.html#which-of-those-are-small-medium-large
你需要这样的东西:
bazel query 'attr(visibility, "//visibility:public", //path/to/package:*)'
Run Code Online (Sandbox Code Playgroud)
更新(2017-01-04):@Curious正在询问查询目标的有效可见性,即考虑default_visibility
在内。AFAIK Bazel 不支持;见问题#4388。
归档时间: |
|
查看次数: |
3219 次 |
最近记录: |