防止cmake运行cpack

时间:2016-06-03 13:05:28

标签: cmake cpack

我有一个CMake项目,我想阻止make package做更多的事情而不是在某些平台上打印消息。

我知道如何添加消息,即使是致命的消息,但是在cmake生成期间运行,而不是在构建期间运行。我是否必须诉诸某些add_custom_command?这不会给我我想要的东西,因为这会创建一个新的构建目标......

如何覆盖某些平台的package目标只显示消息?

2 个答案:

答案 0 :(得分:1)

为什么要在你的cmake列表中包含cpack?

为了使cmake项目具有cpack控制的包目标,您的项目应该包含如下行:

include(CPack)

并设置一些与cpack相关的属性。如果你不想要那个,你可以拿出那条线。

答案 1 :(得分:0)

正如舒指出的那样,你可以这样做:

if (! WIN32)
    include(cpack)
else()
    cmake_policy(SET CMP0037 OLD)
    add_custom_target(package
        #add dependencies on other targets here
        #[[DEPENDS install]]
        COMMAND ${CMAKE_COMMAND} -E echo "custom target for non windows platforms!"
)
endif()

请注意,默认情况下,您不得覆盖测试等保留目标。我们在这里关闭了这个政策来编写我们自己的包目标。