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()
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()
Antworten:
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 = 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ßlich VERBOSE
, DEBUG
und TRACE
.
AUTHOR_WARNING
?