C'è una variabile che posso usare in cmake per farlo funzionare come se fosse passata l'opzione -q? Sarebbe bello perché ho una struttura molto modulare che si confonde con l'output di cmakes. Lo sto usando in un progetto C++.dire alla cmake di tacere
risposta
Non c'è alcuna variabile che io conosca. Tuttavia, è possibile aggiungere il seguente trucco per l'inizio della vostra top-level CMakeLists.txt (prima della chiamata project
) per controllare l'uscita un po ':
function(message)
list(GET ARGV 0 MessageType)
if(MessageType STREQUAL FATAL_ERROR OR
MessageType STREQUAL SEND_ERROR OR
MessageType STREQUAL WARNING OR
MessageType STREQUAL AUTHOR_WARNING)
list(REMOVE_AT ARGV 0)
_message(${MessageType} "${ARGV}")
endif()
endfunction()
Ciò ignora di CMake built-in message
comando e sopprime tutte STATUS
e messaggi non tipizzati, lasciando i tipi più importanti a produrre correttamente.
L'output di ad es. un messaggio WARNING
cambierà da
CMake Warning at CMakeLists.txt:14 (message): This is a dummy warning message.
a
CMake Warning at CMakeLists.txt:8 (_message): This is a dummy warning message. Call Stack (most recent call first): CMakeLists.txt:14 (message)
nota che la linea attuale in cui è stato generato il messaggio di avviso è elencato nello stack di chiamate piuttosto che essere il prima riga del messaggio di output.
Infine, questo non ha alcun effetto sull'output di riepilogo che indica il successo o il fallimento del tentativo di configurazione.
A partire da cmake 3.1, anche l'impostazione CMAKE_INSTALL_MESSAGE
è molto utile. Ad esempio, set(CMAKE_INSTALL_MESSAGE LAZY)
salterà i messaggi -- Up-to-date:
.
- 1. Come posso dire a CMake di usare Clang su Windows?
- 2. CMake collegamento alla libreria esterna
- 3. Collegamento CMAKE condizionale alla libreria rt
- 4. CMake "riferimento alla funzione non definito"
- 5. Come mettere a tacere UserManager in ASP.NET 5
- 6. CMake ... ccmake o cmake?
- 7. CMake obiettivi di costruzione in base alla esistenza della libreria
- 8. Come faccio a dire a CMake di collegarsi in una libreria statica nella directory dei sorgenti?
- 9. mitigare attacchi VIOLAZIONE senza dire addio alla compressione
- 10. CMake ExternalProject: come specificare il percorso relativo alla radice CMakeLists.txt?
- 11. collegamento alla libreria pthread utilizzando CMake (in CLion)
- 12. Collegamento boost alla libreria condivisa con CMake su Linux
- 13. Uso di CMake con setup.py
- 14. Cmake installa trigger di destinazione
- 15. cmake errore di compilazione
- 16. Problema di collegamento CMake
- 17. Obiettivi opzionali in Cmake
- 18. Come compilare CMake per ARM con CMake
- 19. CMake può generare script di compilazione che * non * usano cmake?
- 20. cmake e libpthread
- 21. CMake + GoogleTest
- 22. CMake RequireAdministrator
- 23. Come evitare di dire "gstring"?
- 24. Come posso dire alla mia applicazione Cocoa di uscire dall'applicazione stessa?
- 25. Collegamento CMake e statico
- 26. Esecuzione di CMake su Windows
- 27. CMake target_include_directories significato di scope
- 28. Collegamento di GLEW con CMake
- 29. CMake Build Configurazioni di Eclipse
- 30. Comandi di pulizia personalizzata CMake
Cool! Quindi potresti fare qualsiasi tipo di messaggio che volevi allora? – alexmherrmann
C'è un modo per fermare quella roba per le chiamate? Grazie per la risposta! – alexmherrmann
@alexhairyman Non proprio, ma è necessario per tracciare la vera fonte dell'errore/avvertimento. Se non vuoi vedere nemmeno gli errori/gli avvertimenti, puoi sempre eliminare tutto all'interno del corpo 'function' in modo che' message' diventi un no-op. O lascia semplicemente i tipi di errore in "if" e ignora gli avvertimenti. – Fraser