在 Visual Studio 个 C++ 项目中嵌入 Mercurial 修订版和变更集

Embedding Mercurial revision and changeset in Visual Studio C++ Projects

我使用 CMake 3.2,古老的 MS Visual Studio 2008 构建 C++ 项目。 我找到了 CMake FindHg 模块,它可以帮助我检测修订和变更集;我将它们设置为预处理器定义。但是如何避免在新提交后重新运行 cmake 实用程序以便将实际版本嵌入到 exe 文件中?我只找到了 .NET 项目的解决方案(例如,Embedding mercurial revision information in Visual Studio c# projects automatically)。但是,在 MS Visual Studio 2008(及更新版本)中可以正常工作的 C++ 项目的预构建步骤又如何呢?我也不介意针对这种情况使用某些插件。

我认为最好的办法是在您的 Visual studio 项目中进行预构建步骤。您调用一个 .bat 脚本来获取带有 hg 的修订版,并将其转储到头文件中,例如 #define HG_REVISION "12345",然后您可以将此 .h 包含在您的代码中并获得修订版或变更集你要。