2011-06-18 42 views
2

我想使用CMake生成混淆的lua文件以供交付。對於我的生活,我無法獲得add_custom_command + add_custom_target來爲我構建這些文件。有一些我錯過了。與自定義文件生成器一起使用cmake

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 +使輸出告訴我沒有什麼靶LUABIND_COMPILED_FILES工作要做。我在這裏錯過了什麼嗎?提前致謝。

回答

2

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}) 
+0

看起來是做到了!謝謝你的幫助! – Joe

相關問題