Как создать заголовок в исходном коде с помощью cmake? - PullRequest
5 голосов
/ 19 ноября 2010

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

Возможно ли создать заголовок в исходном каталоге?

edit(чтобы отразить ответ):

Получить доступ к файлу можно напрямую, указав полный путь к нему:

${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..."
)

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

-

1 Ответ

5 голосов
/ 19 ноября 2010

Я думаю, что сгенерированный заголовок хорошо размещен в двоичном каталоге, так как вы можете захотеть создать каталоги с одним и тем же источником и разными конфигурациями, что приведет к созданию другого заголовка.

Возможно, вы захотите включить каталог сборки в ваш проект:

include_directories(${CMAKE_CURRENT_BINARY_DIR})
...