与此处描述的问题相同,我想将Shell脚本作为TARGET“ package”的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"
)
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。当我调用“ make package”时,脚本不会更改。
目前,我有一个针对自定义目标的解决方法:
add_custom_target(
correctDeb
COMMAND bash ${PROJECT_BINARY_DIR}/fixup_deb.sh
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
Run Code Online (Sandbox Code Playgroud)
但是,如果在调用“ 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 )
Run Code Online (Sandbox Code Playgroud)