Causa CMAKE per generare un errore


136

Come posso ottenere CMAKE per generare un errore su una condizione particolare. Cioè, voglio qualcosa del genere:

if( SOME_COND )
  error( "You can't do that" )
endif()

Risposte:


185

Il message()metodo ha un argomento facoltativo per la modalità, permettendo STATUS, WARNING, AUTHOR_WARNING, SEND_ERROR, e FATAL_ERROR. STATUSi messaggi vanno a stdout. Ogni altra modalità di messaggio, inclusa nessuna, passa a stderr.

Si desidera SEND_ERRORse si desidera generare un errore, ma continuare l'elaborazione. Si desidera FATAL_ERRORse si desidera chiudere l'elaborazione CMake.

Qualcosa di simile a:

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()

1
Che diamine è un AUTHOR_WARNING?
Alexis Wilke,

1
@AlexisWilke: lo stato dei documenti CMake AUTHOR_WARNING = CMake Warning (dev), continue processing, suggerendo che deve essere utilizzato per il debug degli script CMake. Solo un'ipotesi selvaggia.
pauluss86

5
@AlexisWilke AUTHOR_WARNINGIndica un avviso non utile all'utente finale ma agli sviluppatori. Può ricordare loro di correggere alcuni hack / todos o indicare avvisi che dovrebbero essere corretti ma non influiscono sull'esecuzione di CMake per l'utente. Ecco perché l'utente può eliminare questi avvisi con --Wno-dev.
usr1234567

2
CMake ora ha molti modi di messaggio più che accompagnano message(), tra cui VERBOSE, DEBUG, e TRACE.
squareskittles,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.