Como posso obter o CMAKE para gerar um erro em uma condição específica. Ou seja, eu quero algo como isto:
if( SOME_COND )
error( "You can't do that" )
endif()
Como posso obter o CMAKE para gerar um erro em uma condição específica. Ou seja, eu quero algo como isto:
if( SOME_COND )
error( "You can't do that" )
endif()
Respostas:
O message()
método tem um argumento opcional para o modo, permitindo STATUS
, WARNING
, AUTHOR_WARNING
, SEND_ERROR
, e FATAL_ERROR
. STATUS
as mensagens vão para stdout. Todos os outros modos de mensagem, incluindo nenhum, vão para o stderr.
Você deseja SEND_ERROR
se deseja gerar um erro, mas continue o processamento. Você deseja FATAL_ERROR
se deseja sair do processamento do CMake.
Algo como:
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 = CMake Warning (dev), continue processing
, sugerindo que ele seja usado para depurar scripts do CMake. Apenas um palpite.
AUTHOR_WARNING
indica um aviso que não é útil para o usuário final, mas para os desenvolvedores. Ele pode lembrá-los de corrigir algum hack / todos ou indicar avisos que devem ser corrigidos, mas não afetam a execução do CMake para o usuário. É por isso que o usuário pode suprimir esses avisos com --Wno-dev
.
message()
, incluindo VERBOSE
, DEBUG
e TRACE
.
AUTHOR_WARNING
?