From 3f67955ffafb59534a77f80e61776e7b8a850c32 Mon Sep 17 00:00:00 2001 From: Florent Pruvost <florent.pruvost@inria.fr> Date: Fri, 9 Mar 2018 10:38:16 +0100 Subject: [PATCH] add an option to colorize output messages --- modules/ColorizeMessage.cmake | 92 +++++++++++++++++------------------ modules/MorseInit.cmake | 25 ++++++---- 2 files changed, 61 insertions(+), 56 deletions(-) diff --git a/modules/ColorizeMessage.cmake b/modules/ColorizeMessage.cmake index e0e4d2b..cc49f86 100644 --- a/modules/ColorizeMessage.cmake +++ b/modules/ColorizeMessage.cmake @@ -3,7 +3,7 @@ # @copyright (c) 2009-2014 The University of Tennessee and The University # of Tennessee Research Foundation. # All rights reserved. -# @copyright (c) 2012-2014 Inria. All rights reserved. +# @copyright (c) 2012-2018 Inria. All rights reserved. # @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. # ### @@ -18,7 +18,7 @@ # Univ. of California Berkeley, # Univ. of Colorado Denver. # -# @version 0.9.0 +# @version 1.0.0 # @author Cedric Castagnede # @author Emmanuel Agullo # @author Mathieu Faverge @@ -28,51 +28,51 @@ ### # Set some colors -#if(NOT WIN32) -# string(ASCII 27 Esc) -# set(ColourReset "${Esc}[m") -# set(ColourBold "${Esc}[1m") -# set(Red "${Esc}[31m") -# set(Green "${Esc}[32m") -# set(Yellow "${Esc}[33m") -# set(Blue "${Esc}[34m") -# set(Magenta "${Esc}[35m") -# set(Cyan "${Esc}[36m") -# set(White "${Esc}[37m") -# set(BoldRed "${Esc}[1;31m") -# set(BoldGreen "${Esc}[1;32m") -# set(BoldYellow "${Esc}[1;33m") -# set(BoldBlue "${Esc}[1;34m") -# set(BoldMagenta "${Esc}[1;35m") -# set(BoldCyan "${Esc}[1;36m") -# set(BoldWhite "${Esc}[1;37m") -#endif() +if(NOT WIN32) + string(ASCII 27 Esc) + set(ColourReset "${Esc}[m") + set(ColourBold "${Esc}[1m") + set(Red "${Esc}[31m") + set(Green "${Esc}[32m") + set(Yellow "${Esc}[33m") + set(Blue "${Esc}[34m") + set(Magenta "${Esc}[35m") + set(Cyan "${Esc}[36m") + set(White "${Esc}[37m") + set(BoldRed "${Esc}[1;31m") + set(BoldGreen "${Esc}[1;32m") + set(BoldYellow "${Esc}[1;33m") + set(BoldBlue "${Esc}[1;34m") + set(BoldMagenta "${Esc}[1;35m") + set(BoldCyan "${Esc}[1;36m") + set(BoldWhite "${Esc}[1;37m") -# Colorize cmake messages during configure -function(message) - list(GET ARGV 0 MessageType) - if(MessageType STREQUAL FATAL_ERROR OR MessageType STREQUAL SEND_ERROR) - list(REMOVE_AT ARGV 0) - string (REPLACE ";" " " ARGV_STR "${ARGV}") - _message(${MessageType} "${BoldRed}${ARGV_STR}${ColourReset}") - elseif(MessageType STREQUAL WARNING) - list(REMOVE_AT ARGV 0) - string (REPLACE ";" " " ARGV_STR "${ARGV}") - _message(${MessageType} "${BoldYellow}${ARGV_STR}${ColourReset}") - elseif(MessageType STREQUAL AUTHOR_WARNING) - list(REMOVE_AT ARGV 0) - string (REPLACE ";" " " ARGV_STR "${ARGV}") - _message(${MessageType} "${BoldCyan}${ARGV_STR}${ColourReset}") - elseif(MessageType STREQUAL STATUS) - list(REMOVE_AT ARGV 0) - string (REPLACE ";" " " ARGV_STR "${ARGV}") - _message(${MessageType} "${Green}${ARGV_STR}${ColourReset}") - else() - string (REPLACE ";" " " ARGV_STR "${ARGV}") - string (REPLACE "${Esc}[1 " "${Esc}[1;" ARGV_STR "${ARGV_STR}") - _message("${ARGV_STR}") - endif() -endfunction() + # Colorize cmake messages during configure + function(message) + list(GET ARGV 0 MessageType) + if(MessageType STREQUAL FATAL_ERROR OR MessageType STREQUAL SEND_ERROR) + list(REMOVE_AT ARGV 0) + string (REPLACE ";" " " ARGV_STR "${ARGV}") + _message(${MessageType} "${BoldRed}${ARGV_STR}${ColourReset}") + elseif(MessageType STREQUAL WARNING) + list(REMOVE_AT ARGV 0) + string (REPLACE ";" " " ARGV_STR "${ARGV}") + _message(${MessageType} "${BoldYellow}${ARGV_STR}${ColourReset}") + elseif(MessageType STREQUAL AUTHOR_WARNING) + list(REMOVE_AT ARGV 0) + string (REPLACE ";" " " ARGV_STR "${ARGV}") + _message(${MessageType} "${BoldCyan}${ARGV_STR}${ColourReset}") + elseif(MessageType STREQUAL STATUS) + list(REMOVE_AT ARGV 0) + string (REPLACE ";" " " ARGV_STR "${ARGV}") + _message(${MessageType} "${Green}${ARGV_STR}${ColourReset}") + else() + string (REPLACE ";" " " ARGV_STR "${ARGV}") + string (REPLACE "${Esc}[1 " "${Esc}[1;" ARGV_STR "${ARGV_STR}") + _message("${ARGV_STR}") + endif() + endfunction() +endif() ## ## @end file ColorizeMessage.cmake diff --git a/modules/MorseInit.cmake b/modules/MorseInit.cmake index 23b6d6c..675a481 100644 --- a/modules/MorseInit.cmake +++ b/modules/MorseInit.cmake @@ -3,7 +3,7 @@ # @copyright (c) 2009-2014 The University of Tennessee and The University # of Tennessee Research Foundation. # All rights reserved. -# @copyright (c) 2012-2016 Inria. All rights reserved. +# @copyright (c) 2012-2018 Inria. All rights reserved. # @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. # ### @@ -18,7 +18,7 @@ # Univ. of California Berkeley, # Univ. of Colorado Denver. # -# @version 0.9.0 +# @version 1.0.0 # @author Cedric Castagnede # @author Emmanuel Agullo # @author Mathieu Faverge @@ -27,14 +27,25 @@ # ### +# Global Morse options +option(MORSE_ENABLE_WARNING "Enable warning messages" OFF) +option(MORSE_ENABLE_COVERAGE "Enable flags for coverage test" OFF) +option(MORSE_ENABLE_COLOR_MESSAGE "Enable colors in messages" OFF) +#option(MORSE_VERBOSE_FIND_PACKAGE "Add additional messages concerning packages not found" OFF) +#message(STATUS "MORSE_VERBOSE_FIND_PACKAGE is set to OFF, turn it ON to get" +# " information about packages not found") + + # This include is required to check symbols of libs in the main CMakeLists.txt include(CheckFunctionExists) # This include is required to check defines in headers include(CheckIncludeFiles) -# To colorize messages -#include(ColorizeMessage) +if (MORSE_ENABLE_COLOR_MESSAGE) + # colorize messages + include(ColorizeMessage) +endif() # To find headers and libs include(FindHeadersAndLibs) @@ -52,12 +63,6 @@ include(Ressources) # Add the path where we handle our FindFOO.cmake to seek for liraries list(APPEND CMAKE_MODULE_PATH ${MORSE_CMAKE_MODULE_PATH}/find) -option(MORSE_ENABLE_WARNING "Enable warning messages" OFF) -option(MORSE_ENABLE_COVERAGE "Enable flags for coverage test" OFF) -#option(MORSE_VERBOSE_FIND_PACKAGE "Add additional messages concerning packages not found" OFF) -#message(STATUS "MORSE_VERBOSE_FIND_PACKAGE is set to OFF, turn it ON to get" -# " information about packages not found") - ## ## @end file MorseInit.cmake ## -- GitLab