我有一个CMake项目,我想阻止make package
做更多的事情而不是在某些平台上打印消息。
我知道如何添加消息,即使是致命的消息,但是在cmake生成期间运行,而不是在构建期间运行。我是否必须诉诸某些add_custom_command
?这不会给我我想要的东西,因为这会创建一个新的构建目标......
如何覆盖某些平台的package
目标只显示消息?
答案 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()
请注意,默认情况下,您不得覆盖测试和包等保留目标。我们在这里关闭了这个政策来编写我们自己的包目标。