2
在我的基於qmake的項目中,我想在編譯之前在某些文件上運行'xxd'。下面的文件,在我的親文件中的相關部分看起來如下:qmake:額外的編譯器(處理步驟)?
SHADERS = shader/tone.frag \
shader/trans.frag \
shader/hue.frag
# xxd
xxd.output = ${QMAKE_FILE_NAME}.xxd
xxd.commands = xxd -i ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
xxd.depends = SHADERS
xxd.input = $$SHADERS
xxd.variable_out = HEADERS
QMAKE_EXTRA_COMPILERS += xxd
QMAKE不抱怨,但它也不會運行XXD可言。我是否必須爲每個我想要預處理的文件創建特殊目標? (所得的* .xxd文件將不在事後由我編寫,僅包含在其他cpp文件)
編輯:隨着smokris的幫助,這就是我在我的親文件固定部分:
# xxd
xxd.output = ${QMAKE_FILE_NAME}.xxd
xxd.commands = xxd -i ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
xxd.depends = $$SHADERS
xxd.input = SHADERS
xxd.variable_out = HEADERS
很高興你的工作。我剛剛弄清楚了關於'.variable_out'的混淆,並澄清了我的答案。 – smokris
爲了防止其他人查看此內容並且無法使其工作:我必須在.depends列表中添加'$$ {QMAKE_FILE_NAME} .xxd'(在我的代碼中調用的方式不同)。所以對我來說,它是'xxd.depends = SHADERS $$ {QMAKE_FILE_NAME} .xxd'。沒有它,着色器編譯器在重新構建的情況下不執行,並且從未創建「$$ {QMAKE_FILE_NAME} .xxd」。 – rsp1984