qmake:每个 make 调用的自定义步骤

qmake: custom step for each make call

我可以轻松编辑 Makefile 以添加自定义步骤。例如,我有一行:

first: release

如果我把它改成

first: pre-build release

那我就可以在"pre-build:"标签后面进行一些操作了

问题是如何将相应的指令写入.pro文件,强制qmake工具在Makefile中生成所需的行?

您可以使用 QMAKE_EXTRA_TARGETS 变量向生成的 Makefile 添加自定义目标,例如:

QMAKE_EXTRA_TARGETS += beforebuild
beforebuild.commands = echo Hello world!
beforebuild.CONFIG = phony

但是,你不能把这个目标放在first: all行,除非你已经修补了qmake的源代码(考虑下面的片段makefile.cpp: t << "first: " << targets.first()->target << endl).

原则上,可以在 all(或 release / debug)和您的 beforebuild 目标之间引起一些依赖,因此 beforebuild 会仍然由 make 自动执行,如 this article(俄语)中所述。然而,最终的解决方案在我看来太丑陋且容易出错。

我认为简单地执行 make beforebuild first(可能使用 shell 脚本)要容易得多。除非您使用的是 Qt Creator,否则在这种情况下您应该尝试上面 link 中的方法。