В настоящее время я пытаюсь установить проект CMake с двумя исполняемыми файлами, одна из которых - простая утилита, используемая для генерации кода для другого. Соответствующие биты CMakeLists.txt:add_custom_command from another target
add_executable(lua2c lua2c.c)
add_custom_command(OUTPUT lcode.c COMMAND lua2c lcode.lua lcode.c MAIN_DEPENDENCY lua2c)
...
add_executable(darpem ... lcode.c)
С помощью этой установки, цель lua2c
ветров с какими-либо зависимостями, что вызывает cc
жаловаться без входных файлов. Если я удаляю строку add_custom_command
, то lua2c
построен правильно, но, очевидно, не генерирует файл lcode.c
. Возможно ли это в CMake? Должен ли я добавить зависимую от подкаталога сортировку?
Использование CMake версии 2.8.1 на Ubuntu 13.04, x86-64.
ПРИМЕЧАНИЕ: Для моего конкретного случая, поскольку lua2c
достаточно прост, я могу использовать другой язык. Однако мне все еще интересно, как это возможно (для более сложных настроек).
Я до сих пор не вижу, как это влияет на зависимости 'lua2c', если только CMake не оптимизирует его, но это работает - спасибо! –
@DrewMcGowen В вашем примере команда была выполнена во время сборки 'lua2c'. Таким образом, в настоящее время двоичный файл lua2c не существует. Вот почему вы должны добавить зависимости где-нибудь, чтобы заставить сборку lua2c прежде всего чем-либо еще. –