OSDN Git Service

Enable colored diagnostics in ninja builds when building with gcc 4.9+.
authorNico Weber <nicolasweber@gmx.de>
Sat, 19 May 2018 02:36:27 +0000 (02:36 +0000)
committerNico Weber <nicolasweber@gmx.de>
Sat, 19 May 2018 02:36:27 +0000 (02:36 +0000)
GCC has supported -fdiagnostics-color since 4.9.

https://reviews.llvm.org/D47083

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332793 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/HandleLLVMOptions.cmake

index 7687a46..676f156 100644 (file)
@@ -720,11 +720,13 @@ add_definitions( -D__STDC_CONSTANT_MACROS )
 add_definitions( -D__STDC_FORMAT_MACROS )
 add_definitions( -D__STDC_LIMIT_MACROS )
 
-# clang doesn't print colored diagnostics when invoked from Ninja
+# clang and gcc don't default-print colored diagnostics when invoked from Ninja.
 if (UNIX AND
-    CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND
-    CMAKE_GENERATOR STREQUAL "Ninja")
-  append("-fcolor-diagnostics" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+    CMAKE_GENERATOR STREQUAL "Ninja" AND
+    (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
+     (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND
+      NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))))
+  append("-fdiagnostics-color" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
 endif()
 
 # lld doesn't print colored diagnostics when invoked from Ninja