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. STATUSNachrichten gehen an stdout. Jeder andere Nachrichtenmodus, einschließlich keiner, geht an stderr.
Sie möchten, SEND_ERRORwenn Sie einen Fehler ausgeben möchten, aber die Verarbeitung fortsetzen möchten. Sie möchten, FATAL_ERRORwenn 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 processingweist darauf hin, dass er zum Debuggen von CMake-Skripten verwendet werden soll. Nur eine wilde Vermutung.
AUTHOR_WARNINGzeigt 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, DEBUGund TRACE.
AUTHOR_WARNING?