该手册详细介绍了如何使用构建信息标记二进制文件 ( https://docs.bazel.build/versions/master/user-manual.html )。
我的问题是“你如何从二进制文件中读取这些信息?”
该手册详细介绍了如何使用构建信息标记二进制文件 ( https://docs.bazel.build/versions/master/user-manual.html )。
我的问题是“你如何从二进制文件中读取这些信息?”
这取决于您在谈论哪种二进制文件。他们中的大多数都没有很好的记录。我主要通过阅读 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 文件,但我从未真正弄清楚如何使用它。