导致CMAKE生成错误

edA*_*a-y 129 cmake

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

if( SOME_COND )
  error( "You can't do that" )
endif()
Run Code Online (Sandbox Code Playgroud)

And*_*dré 175

消息()方法具有用于模式可选参数,允许的状态,警告,AUTHOR_WARNING,SEND_ERROR,和是fatal_error.STATUS消息转到stdout.每个其他消息模式,包括无,都发送给stderr.

如果要输出错误,则需要SEND_ERROR,但继续处理.如果要退出CMake处理,则需要FATAL_ERROR.

就像是:

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()
Run Code Online (Sandbox Code Playgroud)

  • @AlexisWilke`AUTHOR_WARNING`表示对最终用户有用但对开发人员无用的警告.它可以提醒他们修复一些hack/todos或指示应该修复但不影响用户的CMake运行的警告.这就是为什么用户可以使用`--Wno-dev`来抑制这些警告. (5认同)
  • CMake 现在有更多伴随 [`message()`](https://cmake.org/cmake/help/latest/command/message.html) 的消息模式,包括 `VERBOSE`、`DEBUG` 和“追踪”。 (3认同)
  • @AlexisWilke:CMake 文档说明`AUTHOR_WARNING = CMake Warning (dev), continue processing`,暗示它用于调试CMake 脚本。只是一个疯狂的猜测。 (2认同)