使用 qmake 获取日期

Get the date with qmake

由于我使用今天的日期作为我的应用程序版本,所以我想自动填写它。

目前我正在我的项目文件中执行以下操作:

VERSION = 15.4.20 

但我想让它自动:

VERSION = $$YEAR.$$MONTH.$$DAY

有什么想法吗?

您可以将 QMAKE_POST_LINK 与类似

的内容一起使用
$$version = date +%y.%m.%d

编辑

在 Mac OS 您可以使用:

VERSION = $$system(date +%y.%m.%d)

调整它以适应您支持的其他人 OS ;)

在我们的例子中,我们只需要 year 版权:

company = My-Company
win32 {
    year = $$system("echo %date:~10,4%")
} else {
    year = $$system("date +%Y")
}
copyright = "Copyright (C) 2017-$$year, $$company"

此外,我们使用commit-hash decimal作为版本后缀:

win32 {
    commit = $$system("FOR /F \"tokens=*\" %H IN ('git rev-parse --short HEAD') DO @SET /A DECIMAL=0x%H")
} else {
    commit = $$system("printf '%d' 0x`git rev-parse --short HEAD`")
}

另一种选择是使用未记录的 qmake 变量 _DATE_,它在所有平台上都可用:

BUILD_YEAR = $$str_member($${_DATE_}, -4, -1)
message("Build year '$${BUILD_YEAR}' out of '$${_DATE_}'")

Undocumented QMake