基于cmake为项目自动获取git分支tag的版本号和commitid

1. 引言

  在项目构建的时候,我们经常会希望能够将git提交的分支信息和提交号(commitid)以及当前版本发布的tag信息作为版本号自动构建到程序里面,以便后续能够快速定位所运行的程序所定影的git源码的版本,从而快速发现和定位问题。
  本文利用cmake的自动构建能力,来实现以下信息的自动提取并构建到程序中:

  • 当前代码的git 分支名
  • 当前代码的git 提交号(commitid)
  • 当前代码的tag所设置的版本号
  • 当前代码的构建时间
  • 当前代码的构建号(buildno)

  以下以c语言构成为例,展示了利用cmake自动生成config.h文件,将以上信息自动集成到c语言工程代码中的过程。

2. 实现过程

2.1 工程目录规划

  如下图:
在这里插入图片描述|300

  其中有c语言源码都放在工程根目录下面,当然,对于比较大型的工程,可以对源码目录进行更细地拆分和规划,本demo只有一个test.c和config.h的c源码文件,因此源码目录从简。
  创建一个cmake目录,用来存放自定义的cmake模块文件。
  创建一个build目录,用来存放cmake运行所产生的输出文件。

2.2 c程序文件

  test.c 文件的内容如下:

#include <stdio.h>
#include "config.h"

int main()
{
   
	printf("version: %s\n", PROJECT_VERSION);
	printf("commit:  %s\n", GIT_COMMITID);
	printf("branch:  %s\n", GIT_BRANCH)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农心语

您的鼓励是我写作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值