Возникла та же проблема, что и здесь описано, я хочу выполнить сценарий оболочки как команду 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 )