首页 > 解决方案 > 使用 Bazel,您如何从二进制文件中检索标记信息?

问题描述

该手册详细介绍了如何使用构建信息标记二进制文件 ( https://docs.bazel.build/versions/master/user-manual.html )。

我的问题是“你如何从二进制文件中读取这些信息?”

标签: bazelstamp

解决方案


这取决于您在谈论哪种二进制文件。他们中的大多数都没有很好的记录。我主要通过阅读 Bazel 源代码,研究了如何为某些语言做到这一点。

对于 C++,您将 a 的(未记录的)linkstamp属性设置cc_library为一个.cc文件,该文件将具有BUILD_SCM_REVISION, BUILD_TIMESTAMP,其余部分在编译时定义为适当的值。bazelbuild/bazel#2893是一个开放的错误,可以更好地记录这一点。

对于 a genrule,您将stamp属性设置为1,然后它可以访问bazel-out/volatile-status.txt/bazel-out/stable-status.txt与信息。bazelbuild/bazel#944谈到了这一点。

我见过 Bazel 代码用于.properties处理 Java 文件,但我从未真正弄清楚如何使用它。


推荐阅读