我们正在寻找一种在构建中自动包含某种构建ID的方法.这需要可移植(
Linux,Mac上的VC,g)和自动. VC是最重要的,因为在其他环境中我们使用自定义
Python构建脚本,所以我可以做任何我想做的事情.
我们使用SVN,所以我们正在考虑使用svnversion的输出将修订写入标题并包含它.这有问题:如果我们把文件放在SVN中,它每次都会显示为修改,但它会是一个多余的提交,从某种意义上说会产生一个增加修订的无限循环.如果我们不将文件放在SVN中并仅将其创建为预构建步骤,则源将不完整,因为它们需要预构建步骤或Makefile来生成该文件.
我们也可以使用__DATE__但我们不能保证使用__DATE__的文件(即将其写入日志文件)将被编译,如果其他文件被修改 – 除非我们“触摸”它,但是我们会导致该项目总是过时的.我们可以将它作为预构建步骤触摸,因此只有在项目的其余部分已过期时才会触及它,因此不会导致虚假编译,但如果VC在预构建步骤之前计算依赖项,则不会工作(带有__DATE__的文件不会被编译)
任何有趣的想法?