我们的目标是,从git仓库pull之后,在生成项目时可以自动更新git版本信息。但是目前存在尚未解决的问题,在push项目之后仓库中保存的git版本信息仍然是上一个版本。该问题留作后续研究,问题流程如下图所示:
注意:下面所有文件都必须放在项目目录下,而不能放在解决方案目录下,否则执行sh文件时无法找到version文件(对sh文件不太了解,不知道为什么)
一、version.h文件
定义保存了版本信息的头文件,保存了(1)git版本号(2)最近一次提交时间(3)最近一次编译时间(即当前时间),此处我们定义为:
#ifndef GIT_VERSION
#define GIT_VERSION "f384194"
#define COMMIT_TIME "2022-01-04 15:58:24"
#define BUILD_TIME "2022-01-04 15:59:45"
#endif
为了生成该格式的头文件,我们定义模板文件version.h.tmp,通过替换字符完成版本信息的更新
#ifndef GIT_VERSION
#define GIT_VERSION "MYVERSION"
#define COMMIT_