Changeset: cbd2ea62400a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cbd2ea62400a
Modified Files:
        cmake/monetdb-options.cmake
        cmake/monetdb-toolchain.cmake
Branch: Jul2021
Log Message:

Add build option FORCE_COLORED_OUTPUT (default OFF) to get colored compiler 
output.
Useful when building using ninja.


diffs (62 lines):

diff --git a/cmake/monetdb-options.cmake b/cmake/monetdb-options.cmake
--- a/cmake/monetdb-options.cmake
+++ b/cmake/monetdb-options.cmake
@@ -39,6 +39,10 @@ option(FITS
   "Enable support for FITS (default=ON)"
   ON)
 
+option(FORCE_COLORED_OUTPUT
+  "Force colored compiler output (GCC and Clang only; default=OFF)"
+  OFF)
+
 option(GEOM
   "Enable support for geom module (default=ON)"
   ON)
diff --git a/cmake/monetdb-toolchain.cmake b/cmake/monetdb-toolchain.cmake
--- a/cmake/monetdb-toolchain.cmake
+++ b/cmake/monetdb-toolchain.cmake
@@ -7,6 +7,14 @@
 #]]
 
 function(monetdb_default_toolchain)
+  if (${FORCE_COLORED_OUTPUT})
+    if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
+      MT_addCompilerFlag("-fdiagnostics-color=always" 
"-fdiagnostics-color=always" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS)
+    elseif ("${CMAKE_C_COMPILER_ID}" MATCHES "^Clang|AppleClang$")
+      MT_addCompilerFlag("-fcolor-diagnostics" "-fcolor-diagnostics" 
"${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS)
+    endif ()
+  endif ()
+
   if(SANITIZER)
     if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
       MT_addCompilerFlag("-fsanitize=address" "-fsanitize=address" 
"${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS)
@@ -101,6 +109,14 @@ function(monetdb_default_toolchain)
 endfunction()
 
 function(monetdb_default_compiler_options)
+  if (${FORCE_COLORED_OUTPUT})
+    if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
+      add_compile_options("-fdiagnostics-color=always")
+    elseif ("${CMAKE_C_COMPILER_ID}" MATCHES "^Clang|AppleClang$")
+      add_compile_options("-fcolor-diagnostics")
+    endif ()
+  endif ()
+
   if(SANITIZER)
     if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
       add_compile_options("-fsanitize=address")
@@ -149,10 +165,14 @@ function(monetdb_default_compiler_option
       add_option_if_available("-Wduplicated-branches")
       add_option_if_available("-Wrestrict")
       add_option_if_available("-Wnested-externs")
+      add_option_if_available("-Wmissing-noreturn")
+      add_option_if_available("-Wuninitialized")
+
       # since we use values of type "int8_t" as subscript,
       # and int8_t may be defined as plain "char", we cannot
       # allow this warning (part of -Wall)
       add_option_if_available("-Wno-char-subscripts")
+
       add_option_if_available("-Wunreachable-code")
     elseif(${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
       if(WIN32)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to