Цветной вывод для cmake, но только на экран, а не в файл

Есть ли способ получить цветной вывод в cmake для сообщений (например, как здесь написано), но только когда вывод не перенаправлен в файл (и использует только возможности cmake)? Поскольку при использовании этого метода сообщения в файле также раскрашиваются (печатаются escape-последовательности).

Я хотел бы иметь возможность заставить и флаги компилятора, как -fdiagnostics-color для GCC или -fcolor-diagnostics для лязга. На некоторых платформах компилятор не окрашивает вывод без этих флагов. Я думаю, что это невозможно сделать правильно. Флаги кэшируются и каждый раз, когда make запускается, он использует то же значение, которое было настроено при cmake был запущен в первый раз. Я не знаю, как изменить флаги в зависимости, если вывод перенаправляется на экран или в файл, но если это возможно, я хотел бы знать.

1 ответ

Есть ли способ иметь цветной вывод в cmake для сообщений, но только когда вывод не перенаправлен в файл, я не знаю.

Для другого вопроса, с достаточно недавними версиями clang или gcc, я получаю автоматическое окрашивание в зависимости от того, является ли вывод терминалом. Извините, если вы не можете обновить свой компилятор прямо сейчас, но я уверен, что в конце концов вы это сделаете:)

Другие вопросы по тегам