定位Bazel输出文件?



当我运行bazel build时,bazel报告目标的输出文件。我如何以编程方式查询这个?

在本例中,我想获得bazel-out/...路径。

$ bazel build foo/bar:registration
INFO: Analyzed target //foo/bar:registration (546 packages loaded, 13485 targets configured).
INFO: Found 1 target...
Target //foo/bar:registration up-to-date:
bazel-out/k8-fastbuild-ST-a82eca4c6b7c/bin/foo/bar/registration/registration_/registration

这可以通过使用cquery命令的Starlark输出模式非常灵活地完成。例如,要获得与build类似的输出,使用:

$ bazel cquery --output starlark --starlark:expr '"n".join([f.path for f in target.files.to_list()])' //foo/bar

将来,cquery中可能还会有一个专门的选项来处理简单的情况,而不需要在命令行中涉及到Starlark。

最新更新