0
我有rc
目录我想在该目录中递归运行xxd -i filename
并将生成的文件添加到我的项目中。cmake运行xxd作为自定义命令
我正在检查lua上的一些answer。我以类似的方式做了它。
SET(RESOURCE_COMPILER "xxd")
SET(COMPILED_RESOURCES "rc/base.css rc/common.js")
FOREACH(F ${COMPILED_RESOURCES})
ADD_CUSTOM_COMMAND(
OUTPUT "${COMPILED_RESOURCES}/${F}"
COMMAND ${RESOURCE_COMPILER} -i "${COMPILED_RESOURCES}/${F}"
COMMENT "Compiling ${F} to binary")
LIST (APPEND COMPILED_RESOURCES "${COMPILED_RESOURCES}/${F}")
ENDFOREACH()
但我没有看到任何生成的文件。
我在循环中放置了一个MESSAGE。我观察到没有空间。但即使我用'$ {RESOURCE_COMPILER}“-i”$ {INPUT_FILE}'修复了这个问题,也没有生成任何文件。 –
在循环内部放置一个'message'将不会给出由'add_custom_command'执行的命令的正确印象。参数全部单独传递给xxd,并且适当添加空格。应该不需要''-i“''。如果你想检查你的命令是否正确,你可以暂时添加'execute_process(COMMAND $ {RESOURCE_COMPILER} -i $ {CMAKE_SOURCE_DIR} /rc/base.css $ {CMAKE_SOURCE_DIR} /rc/base.css.hex)'到你的CMakeLists.txt。这将在每次调用cmake时运行,并让你看看命令是否在做你想做的。 – Fraser
那么我应该用'execute_process'替换ADD_CUSTOM_COMMAND吗? –