导致CMAKE产生错误


136

如何在特定条件下使CMAKE生成错误。也就是说,我想要这样的东西:

if( SOME_COND )
  error( "You can't do that" )
endif()

Answers:


185

message()方法具有用于模式可选参数,允许STATUSWARNINGAUTHOR_WARNINGSEND_ERROR,和FATAL_ERRORSTATUS消息发送到标准输出。消息的其他所有模式(包括无消息)都发送到stderr。

你想SEND_ERROR,如果你想输出一个错误,但继续处理。您FATAL_ERROR是否要退出CMake处理。

就像是:

if( SOME_COND )
  message( SEND_ERROR "You can't do that" )
elseif( SOME_CRITICAL_COND )
  message( FATAL_ERROR "You can not do this at all, CMake will exit." )
endif()

1
到底是AUTHOR_WARNING什么?
亚历克西斯·威尔克

1
@AlexisWilke:CMake文档状态AUTHOR_WARNING = CMake Warning (dev), continue processing,建议将其用于调试CMake脚本。只是一个疯狂的猜测。
pauluss86

5
@AlexisWilke AUTHOR_WARNING表示警告,对最终用户无用,但对开发人员无济于事。它可以提醒他们修复一些hack /待办事项,或指示应修复但不会影响用户的CMake运行的警告。这就是为什么用户可以使用禁止显示这些警告的原因--Wno-dev
usr1234567

2
CMake的现在有许多伴随更多的信息模式message(),包括VERBOSEDEBUG,和TRACE
squareskittles
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.