lxyfirst

C++博客 首页 新随笔 联系 聚合 管理
  33 Posts :: 3 Stories :: 27 Comments :: 0 Trackbacks

为了跟踪服务端程序文件的信息,需要在程序版本信息中添加代码库版本信息和编译时间信息。
代码库版本号可以通过代码库管理工具获得。编译时间可以通过__DATE__和__TIME__获得。

以git为例的一种实现。原理是通过version.tpl.h文件生成包含完整版本信息字符串的version.h文件。

version.tpl.h
#ifndef VERSION_H_
#define VERSION_H_

#define BASE_VERSION "1.0.0"
#if defined(DEBUG) || defined(_DEBUG) || defined(_DEBUG_)
#define VERSION BASE_VERSION "_debug_" COMMIT_TAG "_" __DATE__ " "  __TIME__
#else
#define VERSION BASE_VERSION "_release_" COMMIT_TAG "_" __DATE__ " "  __TIME__
#endif

#endif

makefile
all : version
#   @for SUBDIR in $(SUBDIRS) ; do make -C $$SUBDIR all ; done

version : 
    @if  ! grep "$(commit_tag)" version.h >/dev/null ; then                   \
        echo "update version.h"       ;    \
        sed 's/COMMIT_TAG/"$(commit_tag)"/g' version.tpl.h > version.h     ;  \
    fi
posted on 2012-10-25 15:31 star 阅读(770) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理