Wie kann ich CMAKE dazu bringen, unter einer bestimmten Bedingung einen Fehler zu generieren? Das heißt, ich möchte so etwas:
if( SOME_COND )
error( "You can't do that" )
endif()
Das message()
Verfahren weist ein optionales Argument für den Modus, in dem STATUS
, WARNING
, AUTHOR_WARNING
, SEND_ERROR
, und FATAL_ERROR
. STATUS
Nachrichten gehen an stdout. Jeder andere Nachrichtenmodus, einschließlich keiner, geht an stderr.
Sie möchten, SEND_ERROR
wenn Sie einen Fehler ausgeben möchten, aber die Verarbeitung fortsetzen möchten. Sie möchten, FATAL_ERROR
wenn Sie die CMake-Verarbeitung beenden möchten.
Etwas wie:
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
?AUTHOR_WARNING = CMake Warning (dev), continue processing
weist darauf hin, dass er zum Debuggen von CMake-Skripten verwendet werden soll. Nur eine wilde Vermutung.AUTHOR_WARNING
zeigt eine Warnung an, die für den Endbenutzer, aber für die Entwickler nicht nützlich ist. Es kann sie entweder daran erinnern, einige Hack / Aufgaben zu beheben, oder Warnungen anzeigen, die behoben werden sollten, aber den CMake-Lauf für den Benutzer nicht beeinflussen. Deshalb kann der Benutzer diese Warnungen mit unterdrücken--Wno-dev
.message()
, einschließlichVERBOSE
,DEBUG
undTRACE
.