【问题标题】:Cause CMAKE to generate an error导致 CMAKE 产生错误
【发布时间】:2011-07-21 04:35:51
【问题描述】:

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

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

【问题讨论】:

    标签: cmake


    【解决方案1】:

    message() 方法具有模式的可选参数,允许 STATUS、WARNING、AUTHOR_WARNING、SEND_ERROR 和 FATAL_ERROR。 STATUS 消息转到标准输出。其他所有消息模式(包括无消息模式)都进入 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()
    

    【讨论】:

    • AUTHOR_WARNING 到底是什么?
    • @AlexisWilke:CMake 文档状态为AUTHOR_WARNING = CMake Warning (dev), continue processing,表明它用于调试 CMake 脚本。只是一个疯狂的猜测。
    • @AlexisWilke AUTHOR_WARNING 表示对最终用户无用但对开发人员有用的警告。它可以提醒他们修复一些黑客/待办事项或指示应该修复但不影响用户运行 CMake 的警告。这就是为什么用户可以使用--Wno-dev 禁止这些警告。
    • CMake 现在有 许多 更多伴随 message() 的消息模式,包括 VERBOSE、DEBUG 和 TRACE。
    猜你喜欢
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 2019-03-27
    相关资源
    最近更新 更多