在我基于 qmake 的项目中,我想在编译之前对某些文件运行“xxd”。按照文档,我的 pro 文件中的相关部分如下所示:
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 的帮助下,这就是我在 pro 文件中修复该部分的方式:
# 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