小编Pol*_*bos的帖子

CMake / CPack:add_custom_command TARGET包POST_BUILD

此处描述的问题相同,我想将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)

cmake package post-build cpack add-custom-command

5
推荐指数
0
解决办法
965
查看次数

标签 统计

add-custom-command ×1

cmake ×1

cpack ×1

package ×1

post-build ×1