Я имею следующую структуру каталогов:Выполнить пользовательский сценарий оболочки с CMake
/CMakeLists.txt
/component-a/CMakeLists.txt
/...
/component-b/CMakeLists.txt
/...
/doc/CMakeLists.txt
/create-doc.sh
Скрипт create-doc.sh
создает файл документации (doc.pdf
). Как я могу использовать CMake для выполнения этого сценария оболочки во время сборки и скопировать файл doc.pdf
в каталог сборки?
Я попробовал его с помощью add_custom_command
в файле CMakeLists.txt
внутри каталога doc
:
add_custom_command (OUTPUT doc.pdf
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create-doc.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/)
К сожалению, команда никогда не работать.
Я также попытался execute_process
:
execute_process (COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create-doc.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/)
Теперь скрипт выполняется на этапе конфигурации, но не во время сборки.
Возможный дубликат [CMake add \ _custom \ _command не запускается] (http://stackoverflow.com/questions/2937128/cmake-add-custom-command-not-being-run) – Tsyvarev