2
qmake可以處理生成的源文件的依賴關係嗎?qt 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 is not actually executed。
另一個想法是解析依賴淘汰原有的IDL:
idl_h.depends = $$system(cat ${QMAKE_FILE_IN} | grep "^#include" | sed -re 's/#include\s+["<]([^.]+)\.idl[">]/\1.h/')
但似乎我的qmake的語法失敗我。