如何在不重新制作所有目标的情况下使用qmake添加自定义构建步骤?

时间:2019-07-11 02:27:53

标签: qt qmake

这是添加自定义构建步骤的简单示例:

mytarget.commands = @echo Testing123
QMAKE_EXTRA_TARGETS += mytarget
PRE_TARGETDEPS += mytarget

这有效,并按预期打印消息。但是,每次构建时,它也会重新创建项目中的所有目标,这需要几分钟。

如果我取出PRE_TARGETDEPS += mytarget,则不会打印任何消息,并且构建成功且没有任何更改。但是我需要打印消息。

我需要执行一个预构建步骤,但是如果它们的依赖关系没有改变,我不希望其他任何目标被重新制造。如何使用qt做到这一点?

1 个答案:

答案 0 :(得分:1)

您必须在磁盘上有一个文件才能使其正常工作:

PRETARGET = .pretarget

!exists($$OUT_PWD/$$PRETARGET):system(touch $$OUT_PWD/$$PRETARGET)
$${PRETARGET}.depends = FORCE # or $${PRETARGET}.CONFIG = phony
$${PRETARGET}.commands = @echo -e \"[\\e[1m\\e[32mTARGET\\e[0m] $$OUT_PWD/$(DESTDIR_TARGET)\"
QMAKE_EXTRA_TARGETS += $$PRETARGET
PRE_TARGETDEPS += $$PRETARGET
相关问题