在Makefile中,这可以通过以下方式完成:
g++ -DGIT_SHA1="`git log -1 | head -n 1`" ...
Run Code Online (Sandbox Code Playgroud)
这非常有用,因为二进制文件知道确切的提交SHA1,所以它可以在segfault的情况下转储它.
我如何用CMake实现同样的目标?
使用CMake,我可以使用Subversion_WC_INFO.但是,这仅在配置时发生 - 每个后续make都将使用此缓存的修订版.
我想在构建时获得svn修订版(即每次Make运行时).我怎样才能做到这一点?