################################################################################ # When using Clang, there is nothing to do: colors are enabled by default # When using GCC >= 4.9, colored diagnostics can be enabled natively # When using an older version, one can use gccfilter (a perl script) # # I do not recommend using gccfilter as of now (May 2014), because it seems to # be bugged. But if you still want to try, here is how to install it on Ubuntu: # # # 1) Download the perl script and add it to you $PATH # mkdir -p ~/.local/bin # wget -P ~/.local/bin http://www.mixtion.org/gccfilter/gccfilter # chmod +x ~/local/bin/gccfilter # echo 'PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc # # 2) Install the dependencies # * Term::ANSIColor # sudo cpan # cpan> install Term::ANSIColor # * The module "Getopt::Long" is included in "perl-base" # * For Getopt::ArgvFile and Regexp::Common ... # sudo apt-get install libgetopt-argvfile-perl libregexp-common-perl # ################################################################################ if(CMAKE_COMPILER_IS_GNUCXX) # If GCC >= 4.9, just activate the right option if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9) message(STATUS "GCC >= 4.9 detected, enabling colored diagnostics") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=auto") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fdiagnostics-color=auto") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fdiagnostics-color=auto") return() endif() # If GCC < 4.9, maybe we can use gccfilter find_program(GCC_FILTER gccfilter) if(GCC_FILTER) option(COLOR_GCC "Use GCCFilter to color compiler output messages" OFF) set(COLOR_GCC_OPTIONS "-c -r -w" CACHE STRING "Arguments that are passed to gccfilter when output coloring is switchend on. Defaults to -c -r -w.") if(COLOR_GCC) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${GCC_FILTER} ${COLOR_GCC_OPTIONS}") message(STATUS "Using gccfilter for colored diagnostics") endif() endif() endif()