/* * 说明: 定义版本号 * * 作者: 杨海洋 * 日期: 2023-03-22 * * ******************************************************************* * * 主版本号.子版本号.修订版本号.日期 * * 比如:1.2.3.2304241030 * * 说明: * 第一位(1):主版本号。当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。 * 第二位(2):子版本号。当功能有一定的增加或变化,比如增加了新功能。此版本号由项目决定是否修改。 * 第三位(3):修订版本号。一般是Bug修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个bug即可发布一个修订版。此版本号由开发人员决定是否修改。 * 第四位(4):日期版本号(2304241030年月日时分):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。 * */ #ifndef HVERSION_H #define HVERSION_H #include "HSystem.h" //定义版本号 格式:主版本号.子版本号.修订版本号.版本日期 #define JUDGE_VERSION_MAJOR 1 #define JUDGE_VERSION_MINOR 0 #define JUDGE_VERSION_PATCH 3 #define JUDGE_VERSION_STAMP "2504110912b" #if JUDGE_USE_OLD # undef JUDGE_VERSION_STAMP # define JUDGE_VERSION_STAMP "2411121010b.old" #endif #define JUDGE_AUX_VERSION(a,b,c) (((a)<<24) | ((b)<<16) | (c)) #define JUDGE_AUX_MAJOR(x) (((x) & 0xFF000000) >> 24) //[0-127] #define JUDGE_AUX_MINOR(x) (((x) & 0x00FF0000) >> 16) //[0-255] #define JUDGE_AUX_PATCH(x) (((x) & 0x0000FFFF)) //[0-65535] //整数形式版本号表达方式 #define JUDGE_VERSION_INT JUDGE_AUX_VERSION(JUDGE_VERSION_MAJOR,JUDGE_VERSION_MINOR,JUDGE_VERSION_PATCH) //字符串形式版本号表达方式 #define JUDGE_VERSION_STR JUDGE_STR(JUDGE_VERSION_MAJOR.JUDGE_VERSION_MINOR.JUDGE_VERSION_PATCH) //版本号大小比较 #define JUDGE_VERSION_AT_LEAST(major,minor,patch) (JUDGE_VERSION_INT >= JUDGE_AUX_VERSION(major,minor,patch)) #define JUDGE_VERSION_AT_MOST(major,minor,patch) (JUDGE_VERSION_INT <= JUDGE_AUX_VERSION(major,minor,patch)) //版本详细信息[版本号+版本日期] #ifdef JUDGE_VERSION_STAMP # define JUDGE_VERSION_INFO JUDGE_VERSION_STR "." JUDGE_VERSION_STAMP #else extern const char JUDGE_VERSION_STAMP[]; //版本编译时间 2304241030 extern const char JUDGE_VERSION_INFO[]; //版本详细信息[版本号+版本编译日期] 1.2.3.2304241030 #endif #endif // HVERSION_H