本帖最后由 tianxiaoMCU 于 2019-6-17 12:56 编辑
有时候会很频繁的发版本出来测试,特别是一套源码对应N个版本,每次编译后都得手动去改烧录文件的名字,还是很烦人的。明明在原文件里有定义了,还得手动再改一遍。就想着能自动化点,在源文件里改了,编译出来就直接发出去。
需要说明的是,这不是一个通用的脚本,因为是对我自己使用的版本命名方式去做的。如果各位觉得有用的话,可以在这个的基础上改。脚本可以到这里下载
AutoVersionName
实现这个功能有两个文件要用到version.h、autoversionname.py。前者是版本(Semantic Versioning 2.0.0)名字管理文件,主要内容如下
- #define PRE_RELEASE "release"
- #define BUILD "1559717577"
- /* major minor patch */
- #define VERSION_CORE "1.0.0"
- #if defined(VERSION_CORE)
- #if defined(PRE_RELEASE) && defined(BUILD)
- #define SW_VESION VERSION_CORE"-"PRE_RELEASE"+"BUILD
- #elif defined(PRE_RELEASE)
- #define SW_VESION VERSION_CORE"-"PRE_RELEASE
- #elif defined(BUILD)
- #define SW_VESION VERSION_CORE"+"BUILD
- #else
- #define SW_VESION VERSION_CORE
复制代码
使用方法:
1、将version.h、autoversionname.py复制到工程目录下,并将version.h添加到工程里(我需要在程序运行的时候打印版本号);
2、在IDE里设置脚本执行命令,具体看图示:
1560747110(1).png (77.6 KB, 下载次数: 0)
下载附件
2019-6-17 12:52 上传
根据Semantic Versioning 2.0.0,build metadata是动态生成的,一般是时间戳、烧录文件的哈希值啥的。目前没有去实现这一块,因为暂时用不到。要做的话,想着是再另外写一个脚本,在编译开始前去执行,生成需要的build metadata并写到version.h中的#define BUILD处,但是稍显麻烦。
AutoVersionName.zip
(50.86 KB, 下载次数: 10)
2019-6-17 12:55 上传
点击文件名下载附件
一周热门 更多>