General messages¶
message( "message text" ...)
Registreert de opgegeven berichttekst in het logboek. Indien meer dan één berichttekst is opgegeven, worden deze aaneengeschakeld tot één bericht met een neusparagraaf tussen de tekenreeksen.
Het optionele <mode>
-sleutelwoord bepaalt het type bericht, dat van invloed is op de manier waarop het bericht wordt behandeld:
FATAL_ERROR
Maak een fout, stop verwerking en generatie.
SEND_ERROR
CMake Fout, ga door met verwerken, maar sla generatie over.
WARNING
CMake Waarschuwing, ga door met verwerken.
AUTHOR_WARNING
CMake Waarschuwing (dev), ga door met verwerken.
DEPRECATION
CMake Deprecation Error of Warning indien variabeleCMAKE_ERROR_DEPRECATED
of CMAKE_WARN_DEPRECATED
is ingeschakeld, respectievelijk, anders geen bericht.
(geen) of NOTICE
Belangrijke boodschap afgedrukt op stderr om de aandacht van de gebruiker te trekken.
STATUS
De belangrijkste interessante berichten die projectgebruikers zouden kunnen interesseren.Idealiter zouden deze beknopt moeten zijn, niet meer dan een enkele regel, maar toch informatief.
VERBOSE
Gedetailleerde informatieve berichten bedoeld voor projectgebruikers. Deze berichten zouden extra details moeten geven die in de meeste gevallen niet van belang zullen zijn, maar die nuttig kunnen zijn voor degenen die het project bouwen wanneer zij een dieper inzicht willen in wat er gebeurt.
DEBUG
Gedetailleerde informatieve berichten bedoeld voor ontwikkelaars die aan het project zelf werken, in tegenstelling tot gebruikers die het alleen willen bouwen. Deze berichten zijn doorgaans niet interessant voor andere gebruikers die het project bouwen en zijn vaak nauw gerelateerd aan interne implementatiedetails.
TRACE
Gedetailleerde berichten met implementatiedetails op zeer laag niveau. Berichten die dit log-niveau gebruiken, zijn normaal gesproken slechts tijdelijk en zullen naar verwachting worden verwijderd voordat het project wordt vrijgegeven, de bestanden worden ingepakt, enzovoort.
Nieuw in versie 3.15: de niveaus NOTICE
, VERBOSE
, DEBUG
en TRACE
zijn toegevoegd.
Het CMake-opdrachtregelprogramma geeft STATUS
– tot TRACE
-berichten weer op stdout, waarbij het bericht wordt voorafgegaan door twee streepjes en een spatie. Alle andere berichttypes worden naar stderr gestuurd en worden niet voorafgegaan door koppeltekens. DeCMake GUI
toont alle berichten in het loggebied.De curses interface
toont STATUS
tot TRACE
berichten een voor een op een statusregel en andere berichten in een interactieve pop-up box. De --log-level
commandline-optie voor elk van deze tools kan worden gebruikt om te bepalen welke berichten worden getoond.
Nieuw in versie 3.17: Om een log-niveau tussen CMake runs te laten voortbestaan, kan deCMAKE_MESSAGE_LOG_LEVEL
variabele in plaats daarvan worden ingesteld.Merk op dat de opdrachtregeloptie voorrang heeft op de cache-variabele.
Nieuw in versie 3.16: Berichten van logniveau NOTICE
en lager zullen elke regel vooraf worden gegaan door de inhoud van de variabele CMAKE_MESSAGE_INDENT
(geconverteerd naar een enkele tekenreeks door de lijstitems samen te voegen). Voor berichten van STATUS
tot TRACE
wordt deze inspringing ingevoegd na de koppeltekens.
Nieuw in versie 3.17: Berichten van logboekniveaus NOTICE
en lager kunnen ook worden voorafgegaan door een context van de vorm . De inhoud tussen de vierkante haken wordt verkregen door de
CMAKE_MESSAGE_CONTEXT
lijst-variabele te converteren naar een door punten gescheiden tekenreeks. De berichtcontext verschijnt altijd voor de inspringende inhoud, maar na de automatisch toegevoegde voorloopstreepjes. Standaard wordt de berichtcontext niet getoond, deze moet expliciet worden ingeschakeld met de cmake
--log-context
command-line optie of door de CMAKE_MESSAGE_CONTEXT_SHOW
variabele op true te zetten. Zie de CMAKE_MESSAGE_CONTEXT
documentatie voor gebruiksvoorbeelden.
De tekst van waarschuwings- en foutberichten vanCMake wordt weergegeven met behulp van een eenvoudige markeringstaal. Tekst zonder inspringen wordt opgemaakt in alinea’s die zijn omwikkeld met regels en gescheiden door nieuwe regels. Tekst zonder inspringen wordt beschouwd als voorgeformatteerd.