c – 自动构建ID

前端之家收集整理的这篇文章主要介绍了c – 自动构建ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在寻找一种在构建中自动包含某种构建ID的方法.这需要可移植( Linux,Mac上的VC,g)和自动. VC是最重要的,因为在其他环境中我们使用自定义 Python构建脚本,所以我可以做任何我想做的事情.

我们使用SVN,所以我们正在考虑使用svnversion的输出将修订写入标题并包含它.这有问题:如果我们把文件放在SVN中,它每次都会显示修改,但它会是一个多余的提交,从某种意义上说会产生一个增加修订的无限循环.如果我们不将文件放在SVN中并仅将其创建为预构建步骤,则源将不完整,因为它们需要预构建步骤或Makefile来生成文件.

我们也可以使用__DATE__但我们不能保证使用__DATE__的文件(即将其写入日志文件)将被编译,如果其他文件修改 – 除非我们“触摸”它,但是我们会导致该项目总是过时的.我们可以将它作为预构建步骤触摸,因此只有在项目的其余部分已过期时才会触及它,因此不会导致虚假编译,但如果VC在预构建步骤之前计算依赖项,则不会工作(带有__DATE__的文件不会被编译)

任何有趣的想法?

解决方法

我们正在使用svnversion的输出,写入头文件并包含在内.我们从存储库中省略了该文件,并在预构建步骤中创建它;这对我们来说非常有效. (我不确定你为什么反对使用预构建步骤?)

我们目前正在使用Perl脚本将svnversion的输出转换为头文件;我后来发现TortoiseSVN包含一个subwcrev命令(它也被移植到Linux)可以完成同样的事情.

猜你在找的C&C++相关文章