如何在qmake/qtcreator中添加预构建步骤?

Vi.*_*Vi. 10 version-control qmake prebuild build-numbers

我希望编译的应用程序具有提交编号,源文件校验和以及在编译期间可用的其他内容.

在简单的Makefile中,我喜欢这样:

prog: VERSION source.c
    gcc -DVERSION=\"$(shell cat VERSION)\" source.c -o prog 

VERSION: .git
    git describe > VERSION
Run Code Online (Sandbox Code Playgroud)

如何使用与qmake类似的东西?

jwe*_*rny 19

如果您要将版本信息作为包含文件(例如"version.h")而不是#define传递,那么您可以将以下内容添加到qmake文件中

# Define how to create version.h
version.target = version.h
version.commands = <PUT_YOUR_COMMANDS_HERE>
version.depends = .git

QMAKE_EXTRA_TARGETS += version

PRE_TARGETDEPS += version.h
Run Code Online (Sandbox Code Playgroud)

前3行告诉我们如何创建一个名为"version"的新目标对象来生成"version.h".它是通过执行命令"<PUT_YOUR_COMMANDS_HERE>"来完成的.目标取决于".git"

"QMAKE_EXTRA_TARGETS"表示有一个称为"版本"的新目标.

"PRE_TARGETDEPS"表示在完成任何其他操作之前需要存在"version.h"(如果尚未制作,则强制执行).