2017-01-27 58 views
1

假设我用CPack:有没有办法让自定义目标取决于CPack?

包括(CPack)

这理应增加了两个额外的目标:packagepackage_source,但是如果我想使依赖于它这样的封装后的目标:

make[2]: *** No rule to make target `CMakeFiles/package.dir/all', needed by `CMakeFiles/do_something_to_package.dir/all'. Stop. 

是:

add_custom_target(do_something_to_package ...) 
add_dependencies(do_something_to_package package) 

我建的时候,像这样得到一个错误有什么办法可以做到这一点?

+0

似乎有[此错误报告](https://gitlab.kitware.com/cmake/cmake/issues/8438)。 – Timmmm

回答

0

啊,是继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 
) 

不完全是优雅的,但它可能会更糟!另外它似乎没有特别适合并行构建。不完全确定为什么,但为了发布,我会做一个非平行的构建,以确保安全。

相关问题