Мой проект состоит из нескольких компонентов. Каждый из них зависит от одного или нескольких файлов *.hpp
, которые генерируются из *.lcm
с использованием внешнего инструмента. Я хотел бы иметь возможность указать список файлов *.lcm
, необходимых для каждого компонента, и сделать так, чтобы CMake автоматически выполнял компиляцию, когда это необходимо, возможно, при помощи небольшого макроса:
REQUIRED_LCMS (the_component x.lcm z.lcm)
Для компиляции *.lcm
, я думаю, должно работать следующее:
ADD_CUSTOM_COMMAND (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${lcm_basename}.hpp
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${lcm}
COMMAND "lcm-gen"
ARGS "--lazy --cpp ${CMAKE_CURRENT_SOURCE_DIR}/${lcm}"
COMMENT " ${lcm} -> ${lcm_basename}.hpp")
... но я не уверен, что должно быть в REQUIRED_LCMS
. ADD_CUSTOM_COMMAND
и ADD_CUSTOM_TARGET
?