有没有办法让自定义目标依赖于 CPack? [复制]
Posted
技术标签:
【中文标题】有没有办法让自定义目标依赖于 CPack? [复制]【英文标题】:Is there a way to have a custom target depend on CPack? [duplicate] 【发布时间】:2017-01-27 11:48:23 【问题描述】:假设我使用 CPack:
包括(CPack)
这应该会增加两个额外的目标:package
和 package_source
,但是如果我想创建一个依赖于它的 post-package 目标,如下所示:
add_custom_target(do_something_to_package ...)
add_dependencies(do_something_to_package package)
构建时出现错误,如下所示:
make[2]: *** No rule to make target `CMakeFiles/package.dir/all', needed by `CMakeFiles/do_something_to_package.dir/all'. Stop.
有没有办法让它工作?
【问题讨论】:
好像有a bug report for this。 【参考方案1】:啊,是的,跟随How to add_custom_target that depends on "make install" question,这似乎有效:
add_custom_target(package_target
COMMAND "$CMAKE_COMMAND" --build . --target package
WORKING_DIRECTORY "$CMAKE_CURRENT_BINARY_DIR"
COMMENT "Building package"
DEPENDS stuff_required_for_package
VERBATIM
)
不完全优雅,但可能会更糟!此外,它似乎并不能很好地与并行构建一起使用。不完全确定为什么,但为了安全起见,我会做一个非并行构建。
【讨论】:
以上是关于有没有办法让自定义目标依赖于 CPack? [复制]的主要内容,如果未能解决你的问题,请参考以下文章