QT Creator 使用SVN的版本号做为编译的版本信息

在使用qt Creator 开发中,如果想使用 svn 的源代码版本号来作为 build 的一个子版本号或者只是为了识别某个发布版本,与源代码的版本信息对应起来,可以方便调试对应的版本代码,我们可以通过获取svn的最新提交的版本代码号来实现。

svn中有SubWCRev.exe工具提供获取svn版本号,可以通过批处理文件获取

批处理文件 get_svn_ver.bat

setlocal

set SVN_PATH=D:\Program Files\TortoiseSVN\bin      -- svn路径


set WORK_DIR=F:\QT Project          -- 项目路径


set VERSION_TEMPLATE=F:\QT Project\version_template.h    --版本模板  


set VERSION_RELEASE=F:\QT Project\version.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中设置一下
  1. 选择 Qt Creator 左侧的项目标签,选择右侧的构建,添加自定义步骤选择 get_svn_ver.bat 作为命令,工作目录设定为工程所在目录(version.h将被放在这里)
  2. 把刚添加的自定义步骤顺序调整到最上面
  3. 在项目中引入头文件version.h ,并在项目中使用宏 VER_REVISION ,就可以显示版本号

每次编译 都会执行该批处理 获取最新的svn版本号, 并重新生成version.h 

 

posted @ 2015-11-30 10:39  预见者  阅读(1782)  评论(1编辑  收藏  举报