Цель CMake для создания исполняемого скрипта-оболочки - PullRequest
2 голосов
/ 22 октября 2010

Я довольно новичок в CMake, и у меня есть следующая проблема:

У меня есть несколько модулей C ++ (исполняемых файлов), которые вместе образуют программный пакет.Модули управляются и выполняются программой драйвера, написанной на Python.В процессе сборки / установки программа Python должна быть предварительно обработана с параметрами, установленными процессом конфигурации (в настоящее время Autoconf / Automake / Libtool).В настоящее время это делается с целью создания, которая выглядит примерно так (очень упрощенно):

foobar: foobar.in
    sed -r 's/@USE_EXTMOD@/$(USE_EXTMOD)/' $< $@
    chmod 755 $@

Каков хороший (то есть правильный) способ достижения этого в CMake?Я думаю, можно использовать комбинацию configure_file () и (непереносимого) execute_process (), но есть ли лучший способ?

С наилучшими пожеланиями, Джонас.

1 Ответ

0 голосов
/ 22 октября 2010

Я нашел удовлетворительное решение сам:

option (USE_EXTMOD "Use Python extension module" OFF)
option (DRIVER_DEBUG_MODE "Debug the extmod driver" OFF)

set (INST_BINDIR ${CMAKE_INSTALL_PREFIX}/bin)
configure_file(${Driver_SOURCE_DIR}/foobar.in foobar)

install(PROGRAMS ${Driver_BINARY_DIR}/foobar
    DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
    CONFIGURATIONS Release
    )

install(PROGRAMS ${Driver_BINARY_DIR}/foobar
    DESTINATION ${CMAKE_BINARY_DIR}/bin
    CONFIGURATIONS Debug
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...