Allgemeine Nachrichten¶
message( "message text" ...)
Der angegebene Nachrichtentext wird im Log aufgezeichnet. Wenn mehr als ein Nachrichtentext angegeben wird, werden sie zu einer einzigen Nachricht mit einem Trennzeichen zwischen den Strings verkettet.
Das optionale Schlüsselwort <mode>
bestimmt den Typ der Nachricht, der die Art der Behandlung der Nachricht beeinflusst:
FATAL_ERROR
CMake Error, stop processing and generation.
SEND_ERROR
CMake Error, Verarbeitung fortsetzen, aber Generierung überspringen.
WARNING
CMake Warning, Verarbeitung fortsetzen.
AUTHOR_WARNING
CMake Warning (dev), Verarbeitung fortsetzen.
DEPRECATION
CMake Deprecation Error oder Warning, wenn VariableCMAKE_ERROR_DEPRECATED
bzw. CMAKE_WARN_DEPRECATED
aktiviert ist, sonst keine Meldung.
(keine) oder NOTICE
Wichtige Meldung auf stderr ausgegeben, um die Aufmerksamkeit des Benutzers zu erregen.
STATUS
Die wichtigsten Meldungen, die für die Projektbenutzer von Interesse sein könnten. Idealerweise sollten sie kurz sein, nicht mehr als eine Zeile, aber dennoch informativ.
VERBOSE
Detaillierte Informationsmeldungen für die Projektbenutzer. Diese Nachrichten sollten zusätzliche Details enthalten, die in den meisten Fällen nicht von Interesse sind, die aber für diejenigen, die das Projekt bauen, nützlich sein können, wenn sie einen tieferen Einblick in das Geschehen haben wollen.
DEBUG
Detaillierte Informationsnachrichten, die für Entwickler gedacht sind, die an dem Projekt selbst arbeiten, im Gegensatz zu Benutzern, die es nur bauen wollen. Diese Meldungen sind in der Regel für andere Benutzer, die das Projekt erstellen, nicht von Interesse und stehen oft in engem Zusammenhang mit internen Implementierungsdetails.
TRACE
Feinkörnige Meldungen mit sehr kleinen Implementierungsdetails. Nachrichten, die diesen Log-Level verwenden, sind normalerweise nur temporär und sollten vor der Freigabe des Projekts, dem Packen der Dateien usw. entfernt werden.
Neu in Version 3.15: Die Level NOTICE
, VERBOSE
, DEBUG
und TRACE
wurden hinzugefügt.
Das CMake Kommandozeilen-Tool zeigt STATUS
bis TRACE
Nachrichten auf stdout an, wobei der Nachricht zwei Bindestriche und ein Leerzeichen vorangestellt werden. Alle anderen Nachrichtentypen werden an stderr gesendet und erhalten keine Bindestriche vorangestellt. Der CMake GUI
zeigt alle Meldungen in seinem Protokollbereich an, der curses interface
zeigt STATUS
bis TRACE
Meldungen einzeln in einer Statuszeile und andere Meldungen in einem interaktiven Popup-Feld an. Die --log-level
Kommandozeilenoption für jedes dieser Werkzeuge kann verwendet werden, um zu steuern, welche Meldungen angezeigt werden.
Neu in Version 3.17: Um einen Log-Level zwischen CMake-Läufen zu erhalten, kann stattdessen dieCMAKE_MESSAGE_LOG_LEVEL
-Variable gesetzt werden.Beachten Sie, dass die Kommandozeilenoption Vorrang vor der Cache-Variable hat.
Neu in Version 3.16: Bei Meldungen der Log-Level NOTICE
und darunter wird jeder Zeile der Inhalt der CMAKE_MESSAGE_INDENT
-Variable vorangestellt (durch Verkettung der Listenelemente in einen einzigen String umgewandelt). Bei STATUS
bis TRACE
Meldungen wird dieser Einrückungsinhalt nach den Bindestrichen eingefügt.
Neu in Version 3.17: Meldungen der Protokollstufen NOTICE
und darunter kann jeder Zeile auch ein Kontext der Form vorangestellt werden. Der Inhalt zwischen den eckigen Klammern wird durch Konvertierung der
CMAKE_MESSAGE_CONTEXT
Listenvariablen in eine durch Punkte getrennte Zeichenkette erhalten. Der Nachrichtenkontext erscheint immer vor dem Inhalt des Einzugs, aber nach den automatisch hinzugefügten führenden Bindestrichen. Standardmäßig wird der Nachrichtenkontext nicht angezeigt, er muss explizit mit der cmake
--log-context
Kommandozeilenoption oder durch Setzen der CMAKE_MESSAGE_CONTEXT_SHOW
Variablen auf true aktiviert werden. Siehe die CMAKE_MESSAGE_CONTEXT
Dokumentation für Verwendungsbeispiele.
CMake Warn- und Fehlermeldungstext wird mit einer einfachen Auszeichnungssprache angezeigt. Nicht eingerückter Text wird in zeilenumflochtenen Absätzen formatiert, die durch Zeilenumbrüche getrennt sind. Eingerückter Text wird als vorformatiert betrachtet.