Messaggi generali¶
message( "message text" ...)
Registra il testo del messaggio specificato nel log. Se viene data più di una stringa di messaggio, esse vengono concatenate in un singolo messaggio con il naso tra le stringhe.
La parola chiave opzionale <mode>
determina il tipo di messaggio, che influenza il modo in cui il messaggio viene gestito:
FATAL_ERROR
CMake Error, ferma l’elaborazione e la generazione.
SEND_ERROR
CMake Error, continua l’elaborazione, ma salta la generazione.
WARNING
CMake Warning, continua l’elaborazione.
AUTHOR_WARNING
CMake Warning (dev), continua l’elaborazione.
DEPRECATION
CMake Deprecation Error o Warning se la variabileCMAKE_ERROR_DEPRECATED
o CMAKE_WARN_DEPRECATED
è abilitata, rispettivamente, altrimenti nessun messaggio.
(nessuno) o NOTICE
Messaggio importante stampato su stderr per attirare l’attenzione dell’utente.
STATUS
I principali messaggi interessanti che gli utenti del progetto potrebbero essere interessati.Idealmente questi dovrebbero essere concisi, non più di una singola riga, ma comunque informativi.
VERBOSE
Messaggi informativi dettagliati destinati agli utenti del progetto. Questi messaggi dovrebbero fornire ulteriori dettagli che non saranno di interesse nella maggior parte dei casi, ma che possono essere utili a coloro che costruiscono il progetto quando vogliono una visione più profonda di ciò che sta accadendo.
DEBUG
Messaggi informativi dettagliati destinati agli sviluppatori che lavorano sul progetto stesso in opposizione agli utenti che vogliono solo costruirlo. Questi messaggi non saranno tipicamente di interesse per altri utenti che costruiscono il progetto e saranno spesso strettamente legati a dettagli interni di implementazione.
TRACE
Messaggi dettagliati con dettagli di implementazione di livello molto basso. I messaggi che utilizzano questo livello di log sarebbero normalmente solo temporanei e dovrebbero essere rimossi prima di rilasciare il progetto, impacchettare i file, ecc.
Nuovo nella versione 3.15: Aggiunti i livelli NOTICE
, VERBOSE
, DEBUG
, e TRACE
.
Lo strumento della linea di comando CMake visualizza messaggi da STATUS
a TRACE
su stdout con il messaggio preceduto da due trattini e uno spazio. Tutti gli altri tipi di messaggio sono inviati a stderr e non sono preceduti da trattini. Il CMake GUI
visualizza tutti i messaggi nella sua area di log; il curses interface
mostra da STATUS
a TRACE
messaggi uno alla volta su una linea di stato e altri messaggi in una casella pop-up interattiva. L’opzione --log-level
della linea di comando per ognuno di questi strumenti può essere usata per controllare quali messaggi saranno mostrati.
Nuova nella versione 3.17: Per far persistere un livello di log tra le esecuzioni di CMake, la variabileCMAKE_MESSAGE_LOG_LEVEL
può essere impostata invece.Nota che l’opzione della linea di comando ha la precedenza sulla variabile cache.
Nuova nella versione 3.16: I messaggi dei livelli di log NOTICE
e inferiori avranno ogni linea preceduta dal contenuto della variabile CMAKE_MESSAGE_INDENT
(convertita in una singola stringa concatenando i suoi elementi di lista). Per i messaggi da STATUS
a TRACE
, questo contenuto di indentazione sarà inserito dopo i trattini.
Nuovo nella versione 3.17: i messaggi dei livelli di log NOTICE
e inferiori possono anche avere ogni linea preceduta da un contesto della forma . Il contenuto tra le parentesi quadre si ottiene convertendo la variabile
CMAKE_MESSAGE_CONTEXT
lista in una stringa separata da punti. Il contesto del messaggio apparirà sempre prima di qualsiasi contenuto di indentazione ma dopo qualsiasi trattino aggiunto automaticamente. Per impostazione predefinita, il contesto del messaggio non viene mostrato, deve essere esplicitamente abilitato dando l’opzione cmake
--log-context
della linea di comando o impostando la variabile CMAKE_MESSAGE_CONTEXT_SHOW
a true. Vedere la documentazione CMAKE_MESSAGE_CONTEXT
per gli esempi di utilizzo.
Il testo dei messaggi di avvertimento ed errore di CMake viene visualizzato usando un semplice linguaggio di markup. Il testo non indentato è formattato in paragrafi avvolti da linee e delimitati da linee nuove. Il testo rientrato è considerato preformattato.