Как сгенерировать заголовок в исходном коде с помощью cmake?

В моем проекте у меня есть файл "схемы" и утилита, которую я написал для создания файла заголовка. Я использую 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..."
)

, что на самом деле проще. Спасибо

-

6
задан amso 19 November 2010 в 14:08
поделиться