我们有一个相当大的代码库。绝大多数代码是使用qmake编译生成makefile的。但是,有一些通过运行批处理文件或运行其他程序生成的子项目。从QMake运行程序/脚本
我希望能够使用qmake编译所有的东西,但我无法弄清楚如何让qmake简单地运行脚本。
有一两件事,我试过在我的亲文件使用QMAKE_EXTRA_TARGETS,就像这样:
TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS = batch_runner
然后我必须有这个批处理文件产生placeholder.cpp像这样:
# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
这似乎工作正常。麻烦在于它有点狡猾。如果我没有指定batch_runner.target(即,我将其留空),或者不将placeholder.cpp放入SOURCES中,那么批处理文件永远不会运行。这是因为qmake没有在Makefile中为batch_runner.commands做任何其他依赖的操作。
有没有更好的方法让QMake构建一个Makefile文件,以便在Makefile执行时运行脚本?
有趣。这是有效的,但是当运行'qmake'而不是'nmake'运行时,命令会运行。它也恰好运行三次,而不是一次运行。 – 2010-09-01 12:38:18
您可能需要添加一些范围以确保它只运行一次。 – 2010-09-01 12:41:39
我只是将范围添加到示例中,以便在运行qmake时该命令仅运行一次。 – pixelgrease 2017-03-31 23:53:50