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
この生成は正常に機能し、make 時に .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構文が失敗しているようです。