使用qmake为程序添加版本信息

使用qmake自动创建自定义宏(版本,git提交ID,提交分支,编译时间)。在程序发布时使用特别有效。不多说直接上代码

项目文件(.pro)

DEFINES += APP_VERSION=\\\"'v1.0.0'\\\"

win32 {
    DEFINES += APP_COMMIT_ID=\\\"'$$system(cmd /c git rev-parse HEAD)'\\\"
    DEFINES += APP_BRANCH_NAME=\\\"'$$system(cmd /c git symbolic-ref --short -q HEAD)'\\\"
}
else {
    DEFINES += APP_COMMIT_ID=\\\"'$(shell git rev-parse HEAD)'\\\"
    DEFINES += APP_BRANCH_NAME=\\\"'$(shell git symbolic-ref --short -q HEAD)'\\\"
}

在main.cpp中使用自定义宏

#include 

int main(int argc, char *argv[])
{
    qDebug() << "App version:     " << APP_VERSION;
    qDebug() << "App build time:  " << __DATE__ << __TIME__;
    qDebug() << "App commit id:   " << APP_COMMIT_ID;
    qDebug() << "App branch name: " << APP_BRANCH_NAME;
    return 0;
}

相关知识

  • 使用qmake的DEFINES变量可以自定义宏,而需要宏提供具体的值可以这样做:
DEFINES  += MY_MACRO=\\\"'{value}'\\\"
注意:"MY_MACRO=\"之间不能带有空格
  • 一些qmake平台宏
平台 语法
Windows win32
Mac macx
Linux unix:!macx
Unix unix
  • 程序中__DATE____TIME__为编译内置宏;

关于更多

  • Qt君公众号后台回复"qmake"获取更多相关知识。

你可能感兴趣的:(Qmake,qmake获取版本)