В моем проекте у меня есть файл "схемы" и утилита, которую я написал для создания файла заголовка. Я использую cmake и сборку вне исходного кода для создания приложения.
В настоящее время мне нужно регенерировать файл заголовка вручную, а затем собрать приложение.
Затем я придумал эти операторы CMakeLists.txt, но они генерируют заголовок в каталоге сборки, а не в исходном каталоге.
configure_file( generator.pl generator COPYONLY )
configure_file( schema.txt.in schema.txt COPYONLY )
add_custom_command(
OUTPUT generated.h
COMMAND ./generator schema.txt generated.h
DEPENDS mib_schema.txt.in generator.pl
COMMENT "Regenerating header file..."
)
Можно ли сгенерировать заголовок в исходном каталоге?
изменить (чтобы отразить ответ):
К файлу можно получить доступ напрямую, полностью квалифицируя свой путь с помощью
${CMAKE_CURRENT_SOURCE_DIR}
или:
${CMAKE_CURRENT_BINARY_DIR}
Итак, для генерации заголовка в моем исходном каталоге предыдущий фрагмент из CMakeLists.txt принимает следующий вид:
add_custom_command(
OUTPUT generated.h
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/generator.pl ${CMAKE_CURRENT_SOURCE_DIR}/schema.txt.in ${CMAKE_CURRENT_SOURCE_DIR}/generated.h
DEPENDS mib_schema.txt.in generator.pl
COMMENT "Regenerating header file..."
)
, что на самом деле проще. Спасибо
-