[Qt] QtCreator软件版本管理

目录

功能

开发环境

设计策略

1 qmake

2 .pro文件的配置


 功能

在嵌入式项目中,需要完成一个项目构建号自增的功能,每次构建Debug版本时,构建号自动增加1,假设软件版本命名规则为V1.1.0.132(V X.Y.Z.B),X为大的功能变动或者结构重新设计构建,Y为新增功能或者功能更改时的发布,Z为bug修复发布的小版本,B即为每次构建号,每次构建debug版本时构建号自动加1,而且还要考虑到跨平台的情况(当项目在ARM平台下开发编译时考虑构建号自增,在X86平台下不自增)。

开发环境

软件的开发环境为QtCreator+Ubuntu(或者Windows),因此软件发布或构建时要区分平台。

设计策略

在不同的平台下或不同的构建配置下,【项目】-【构建设置】-【构建步骤】-【qmake详细配置】-【额外的参数】中,根据平台和配置分别编辑【额外的参数】

   ARM+Release: CONFIG+=ARM CONFIG+=release CONFIG-=debug

   ARM+Debug: CONFIG+=ARM CONFIG-=release CONDIG+=debug

   X86+Release: CONFIG+=release CONFIG-=debug

   X86+Debug: CONFIG-=release CONFIG+=debug

   注意:CONFIG和+=之间不能有空格。

1 qmake

QtCreator的编译步骤分为qmake+make,其他的可以自定义构建步骤,自己通过脚本定义构建行为,器中qmake主要的责任是生成.pro文件并根据项目结构产生MakeFile作为下一步make的基础,因为make永远是项目构建的核心(当然qmake也是必不可少的,除非你有时间和精力自己编写MakeFile!)这里要特别指出的重要一点:.pro文件也是个灵活的文件,可以加进去很多东西。

2 .pro文件的配置

contains(CONFIG,ARM){
    contains(CONFIG,release){
		message("******ARM+release*****");
    
		updateBuildNumber.target=buildnumber
		updateBuildNumber.depends=FORCE
		updateBuildNumber.commands=$$PWD/script/updatebuildnumber.sh $$PWD
    
		updateVersion.target=version.h
		updateVersion.depends=buildnumber
		updateVersion.commands=$$PWD/script/updateversion.sh $$PWD
    
		PRE_TARGETDEPS += buildnumber version.h
		QMAKE_EXTRA_TARGET += updateBuildNumber updateVersion 
	}
	else{
		message("******ARM+debug******");
	}
}
else{
    contains(CONFIG,release){
		message("******X86+release******")
	}
	else{
		message("*******X86+debug******")
	}
}

    contains(CONFIG,release){
		message("******ARM+release*****");
    
		updateBuildNumber.target=buildnumber
		updateBuildNumber.depends=FORCE
		updateBuildNumber.commands=$$PWD/script/updatebuildnumber.sh $$PWD
    
		updateVersion.target=version.h
		updateVersion.depends=buildnumber
		updateVersion.commands=$$PWD/script/updateversion.sh $$PWD
    
		PRE_TARGETDEPS += buildnumber version.h
		QMAKE_EXTRA_TARGET += updateBuildNumber updateVersion 
	}
	else{
		message("******ARM+debug******");
	}
}
else{
    contains(CONFIG,release){
		message("******X86+release******")
	}
	else{
		message("*******X86+debug******")
	}
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值