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. STATUSas mensagens vão para stdout. Todos os outros modos de mensagem, incluindo nenhum, vão para o stderr.
Você deseja SEND_ERRORse deseja gerar um erro, mas continue o processamento. Você deseja FATAL_ERRORse 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_WARNINGindica 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, DEBUGe TRACE.
AUTHOR_WARNING?