防止 cmake 运行 cpack



>我有一个CMake项目,我想防止make package在某些平台上打印消息以外的任何事情。

我知道如何添加消息,甚至是致命的消息,但它在 cmake 生成期间运行,而不是在构建期间运行。我必须求助于一些add_custom_command吗?这不会给我我想要的东西,因为这会创建一个新的构建目标......

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

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

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

include(CPack)

以及设置一些与 cpack 相关的属性。如果你不想这样,你可以把那条线拿出来。

正如 shu 指出的那样,你可以做这样的事情:

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()

请注意,默认情况下,不允许覆盖保留的目标,如测试和。我们在此处关闭该策略以编写我们自己的包目标。

最新更新