CMake/CPack: add_custom_command ЦЕЛЕВОЙ пакет POST_BUILD

Возникла та же проблема, что и здесь описано, я хочу выполнить сценарий оболочки как команду POST_BUILD целевого «пакета». Целевая платформа — Debian/Ubuntu.

Я добавляю следующее в конец своих CMakeLists:

 add_custom_command(
     TARGET package
     POST_BUILD
     COMMAND bash ${PROJECT_BINARY_DIR}/fixup_deb.sh
     WORKING_DIRECTORY ${PROJECT_BINARY_DIR} 
     COMMENT "Fix file-permissions of md5sum files in debian package"
 )

Но это не работает. Когда я вызываю «сделать пакет», сценарий не меняется.

На данный момент у меня есть обходной путь с пользовательской целью:

 add_custom_target(
     correctDeb        
     COMMAND bash ${PROJECT_BINARY_DIR}/fixup_deb.sh
     WORKING_DIRECTORY ${PROJECT_BINARY_DIR} 
 )

Но для меня было бы намного удобнее и надежнее, если бы это делалось автоматически при вызове make package.

Кстати, генерация ${PROJECT_BINARY_DIR}/fixup_deb.sh также хорошо работает с:

 configure_file( "${CMAKE_CURRENT_LIST_DIR}/debian/fixup_deb.sh.in" "${PROJECT_BINARY_DIR}/fixup_deb.sh" @ONLY IMMEDIATE )

person Polybos    schedule 23.04.2015    source источник
comment
Я столкнулся с той же проблемой. Вы нашли хорошее решение для этого?   -  person Pat    schedule 08.02.2021