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

发布于 2024-10-18 20:39:15 字数 278 浏览 8 评论 0原文

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

在普通的 Makefiles 中,我确实喜欢这样:

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

VERSION: .git
    git describe > VERSION

How to use thingsimilar with qmake?

I want the compiled application to have the commit number, source files checksums and other things to be available during the compilation.

In plain Makefiles I do like this:

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

VERSION: .git
    git describe > VERSION

How to use something similar with qmake?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久伴你 2024-10-25 20:39:15

如果您要将版本信息作为包含文件(假设为“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.h”的“version”。它是通过执行命令“”来完成的。目标依赖于“.git”。

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

“PRE_TARGETDEPS”表示“version.h”需要先存在,然后才能执行其他操作(如果尚未创建,则强制创建它)。

If you were to pass the version information as an included file (let's say "version.h") instead of a #define, then you could add the following to your qmake file

# 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

The first 3 lines tell how to make a new target object called "version" that generates "version.h". It is made by executing the commands "<PUT_YOUR_COMMANDS_HERE>". The target is dependent on ".git"

The "QMAKE_EXTRA_TARGETS" says there is a new target known as "version".

The "PRE_TARGETDEPS" indicates that "version.h" needs to exist before anything else can be done (which forces it to be made if it isn't already made).

世界等同你 2024-10-25 20:39:15

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

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

A simpler solution even if @jwernemy as nice way to solve it:

VERSION = $system(-git-dir=$PWD/.git <PUT_YOUR_GIT_COMMANDS_HERE>)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文