logo头像

技术引领生活!

qtcreator结合git实现编译历史

如果长期维护一个软件最好能在软件中可以看到软件的更新历史,由于git是很好的版本管理软件于是有了本文

效果

图片

原理

其实实现原理很简单,就是利用git log 功能将历史导出到资源文件中,结合Qt的资源系统需要时读取显示即可
Qt有QMAKE_PRE_LINK变量,给此变量赋值可在编译之前执行一些指令

实现

以windows为例如下所示

QMAKE_PRE_LINK += $$PWD/githistory.bat

  1. windows平台

    1
    2
    3
    4
    5
    cd %~dp0
    del /S qrc_rc.cpp
    echo 编译时间: %date:~0,10% %time% > src/res/version.txt
    echo.>> src/res/version.txt
    git log --date=format-local:"%%Y-%%m-%%d %%H:%%M:%%S" --pretty="format:%%cd %%s" >> src/res/version.txt
  2. linux平台

    1
    2
    3
    4
    5
    6
    7
    8
    #/bin/bash
    cd `dirname $0`
    echo $PWD
    echo 编译时间: `date "+%Y_%m_%d %H:%M:%S"` > src/res/version.txt
    echo " " >> src/res/version.txt

    git log --date=format-local:'%Y-%m-%d %H:%M:%S' --pretty='format:%cd %s' >> src/res/version.txt

支付宝打赏 微信打赏

您的支持是我前行的动力!