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

时间:2011-02-22 20:18:26

标签: 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

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

2 个答案:

答案 0 :(得分: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

前3行告诉我们如何创建一个名为“version”的新目标对象,该对象生成“version.h”。它是通过执行命令“&lt; PUT_YOUR_COMMANDS_HERE&gt;”来完成的。目标取决于“.git”

“QMAKE_EXTRA_TARGETS”表示有一个名为“版本”的新目标。

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

答案 1 :(得分:0)

一个更简单的解决方案,即使@jwernemy是解决它的好方法:

VERSION = $$system(-git-dir=$PWD/.git <PUT_YOUR_GIT_COMMANDS_HERE>)