qmake 可以处理生成的源文件的依赖关系吗?
我们有一个这样的prf文件:
idl_h.name = Generate .H file for ${QMAKE_FILE_BASE}.idl
idl_h.input = IDLS # variable containing our input files
idl_h.variable_out = HEADERS
idl_h.commands = <command that takes .idl and genrates .h>
idl_h.output = $$IDL_GEN_DIR/${QMAKE_FILE_BASE}.h
QMAKE_EXTRA_COMPILERS += idl_h
这一代工作正常,并在制作时创建 .h 文件。问题是输入文件 ( $$IDLS
) 相互依赖,并不总是以正确的顺序构建。我们有类似的东西app.idl
,包含:
#include "common.idl"
看来以下应该工作
idl_h.depend_command = g++ -EE ... $$IDL_GEN_DIR/${QMAKE_FILE_BASE}.h
但显然depend_command并未实际执行。
另一个想法是从原始 idl 中解析依赖项:
idl_h.depends = $$system(cat ${QMAKE_FILE_IN} | grep "^#include" | sed -re 's/#include\s+["<]([^.]+)\.idl[">]/\1.h/')
但似乎我的 qmake 语法让我失望了。