问题是如果pro-file被'qmake'更改,试图在'make clean'期间生成新的makefile。
重现这种情况的步骤:
这是pro的最小例子:
TARGET = qmake-runs-on-make-clean
TEMPLATE = app
warning(qmake runs even if it's make clean)
我想摆脱这种行为或者至少让qmake不要在'make clean'上继续部分pro-file
我怎样才能做到这一点?
答案 0 :(得分:1)
经过一番研究后,我发现了一个看起来不太好但工作正常的解决方案。 qmake有undocumented option名为' no_autoqmake'。所以我将它传递给CONFIG,然后编写了我自己的Makefile目标。
CONFIG += no_autoqmake
for(arg, QMAKE_ARGS){
tmp = $$section(arg, =, 0, 0)
!equals(tmp, MAKE_ARGS){
QMAKE_ARGUMENTS += $$arg
}
}
promod.name = on_pro_modified
promod.target = Makefile
promod.commands = $$QMAKE_QMAKE $$_PRO_FILE_ $$QMAKE_ARGUMENTS MAKE_ARGS='$(MAKECMDGOALS)'
promod.depends = $$_PRO_FILE_ $$QMAKE_INTERNAL_INCLUDED_FILES
PRE_TARGETDEPS += $$_PRO_FILE_
QMAKE_EXTRA_TARGETS += promod
contains(MAKE_ARGS, clean) : CLEAN_MODE_ACTIVATED=1
如果有人找到更好的解决方案,请分享。
答案 1 :(得分:0)
编辑生成的Makefile并删除调用qmake的部分。
但规则是有原因的。也许你正试图解决另一个问题?