这是添加自定义构建步骤的简单示例:
mytarget.commands = @echo Testing123
QMAKE_EXTRA_TARGETS += mytarget
PRE_TARGETDEPS += mytarget
这有效,并按预期打印消息。但是,每次构建时,它也会重新创建项目中的所有目标,这需要几分钟。
如果我取出PRE_TARGETDEPS += mytarget
,则不会打印任何消息,并且构建成功且没有任何更改。但是我需要打印消息。
我需要执行一个预构建步骤,但是如果它们的依赖关系没有改变,我不希望其他任何目标被重新制造。如何使用qt做到这一点?
答案 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