在使用qt Creator 开发中,如果想使用 svn 的源代码版本号来作为 build 的一个子版本号或者只是为了识别某个发布版本,与源代码的版本信息对应起来,可以方便调试对应的版本代码,我们可以通过获取svn的最新提交的版本代码号来实现。
svn中有SubWCRev.exe工具提供获取svn版本号,可以通过批处理文件获取
批处理文件 get_svn_ver.bat
setlocal set SVN_PATH=D:Program FilesTortoiseSVNbin -- svn路径 set WORK_DIR=F:QT Project -- 项目路径 set VERSION_TEMPLATE=F:QT Projectversion_template.h --版本模板 set VERSION_RELEASE=F:QT Projectversion.h --生成的版本头文件 cd %SVN_PATH% SubWCRev.exe "%WORK_DIR%" "%VERSION_TEMPLATE%" "%VERSION_RELEASE%" -f -- 命令
版本模板文件
version_template.h
#ifndef _TMPVERSION_H_ #define _TMPVERSION_H_ #define VER_MAJOR 1 #define VER_MINOR 0 #define SVN_RANGE $WCRANGE$ #define SVN_DATE $WCDATE$ // svn最新提交时间 #define SVN_URL $WCURL$ // svn 地址 #define VER_REVISION "$WCREV$" // svn最新提交的版本号 查看svn帮助文档可以看到会进行svn号的替换 #endif //!_TMPVERSION_H_
将get_svn_ver.bat与version_template.h 复制到项目目录下
在qt creator中设置一下
- 选择 Qt Creator 左侧的项目标签,选择右侧的构建,添加自定义步骤选择 get_svn_ver.bat 作为命令,工作目录设定为工程所在目录(version.h将被放在这里)
- 把刚添加的自定义步骤顺序调整到最上面
- 在项目中引入头文件version.h ,并在项目中使用宏 VER_REVISION ,就可以显示版本号
每次编译 都会执行该批处理 获取最新的svn版本号, 并重新生成version.h