2010-09-22 73 views
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的語法失敗我。

回答

1

嘗試增加

idl_h.dependency_type = TYPE_C 

你PRF,並刪除.depend_command和.depends