Cause CMAKE to generate an error

edA-qa mort-ora-y picture edA-qa mort-ora-y · Mar 23, 2011 · Viewed 76.6k times · Source

How can I get CMAKE to generate an error on a particular condition. That is, I want something like this:

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

Answer

André picture André · Mar 23, 2011

The message() method has an optional argument for the mode, allowing STATUS, WARNING, AUTHOR_WARNING, SEND_ERROR, and FATAL_ERROR. STATUS messages go to stdout. Every other mode of message, including none, goes to stderr.

You want SEND_ERROR if you want to output an error, but continue processing. You want FATAL_ERROR if you want to exit CMake processing.

Something like:

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