2011-06-18 2 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:

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

Смежные вопросы