Использование cmake с собственным генератором файлов - PullRequest
4 голосов
/ 18 июня 2011

Я бы хотел использовать 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 +, вывод показывает, что ничего не поделаешь для цели LUABIND_COMPILED_FILES. Я что-то здесь упускаю? Заранее спасибо.

1 Ответ

4 голосов
/ 18 июня 2011

Команда ADD_DEPENDENCIES может использоваться только для добавления зависимостей между целями верхнего уровня. Однако команда ADD_CUSTOM_COMMAND генерирует выходные файлы, но не добавляет новые цели.

Чтобы пользовательская цель зависела от сгенерированных файлов, используйте параметры DEPENDS команды 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...