我想使用CMake生成混淆的lua文件以进行传递。对于我的生活,我无法获得add_custom_command + add_custom_target来为我构建这些文件。有一些我不知道的东西。
ADD_CUSTOM_TARGET(LUABIND_COMPILED_FILES ALL)
FOREACH(F ${LUA_SCRIPT_FILES})
ADD_CUSTOM_COMMAND(
OUTPUT ${LUA_COMPILED_SCRIPTS}/${F}
COMMAND ${LUAC} -o ${LUA_COMPILED_SCRIPTS}/${F}
COMMENT "Compiling ${F} to binary"
ADD_DEPENDENCIES(LUABIND_COMPILED_FILES ${LUA_COMPILED_SCRIPTS}/${F})
ENDFOREACH()
出于某些原因,当我运行cmake + make时,输出告诉我目标LUABIND_COMPILED_FILES没有任何工作要做。我在这里错过了什么吗?提前谢谢。
答案 0 :(得分:4)
ADD_DEPENDENCIES
命令只能用于添加顶级目标之间的依赖关系。但是ADD_CUSTOM_COMMAND
命令会生成输出文件,但不会添加新目标。
要使自定义目标依赖于生成的文件,请使用add_custom_target命令的DEPENDS选项:
set (LUA_COMPILED_FILES "")
foreach(F ${LUA_SCRIPT_FILES})
add_custom_command(
OUTPUT "${LUA_COMPILED_SCRIPTS}/${F}"
COMMAND ${LUAC} -o "${LUA_COMPILED_SCRIPTS}/${F}"
COMMENT "Compiling ${F} to binary")
list (APPEND LUA_COMPILED_FILES "${LUA_COMPILED_SCRIPTS}/${F}")
endforeach()
add_custom_target(LUABIND ALL DEPENDS ${LUA_COMPILED_FILES})