遇到与此处描述的相同问题,我想将 shell 脚本作为 TARGET“包”的 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"
)
但这不起作用。当我调用“make 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 )