diff --git a/MyxCMake/modules/MyxCMakeColoredMessages.cmake b/MyxCMake/modules/MyxCMakeColoredMessages.cmake new file mode 100644 index 0000000..95da001 --- /dev/null +++ b/MyxCMake/modules/MyxCMakeColoredMessages.cmake @@ -0,0 +1,39 @@ +if(DEFINED ENV{TERM} AND UNIX) + string(ASCII 27 Esc) + set(MyxCMakeColorReset "${Esc}[m") + set(MyxCMakeColorBold "${Esc}[1m") + set(MyxCMakeColorRed "${Esc}[31m") + set(MyxCMakeColorGreen "${Esc}[32m") + set(MyxCMakeColorYellow "${Esc}[33m") + set(MyxCMakeColorBlue "${Esc}[34m") + set(MyxCMakeColorMagenta "${Esc}[35m") + set(MyxCMakeColorCyan "${Esc}[36m") + set(MyxCMakeColorWhite "${Esc}[37m") + set(MyxCMakeColorBoldRed "${Esc}[1;31m") + set(MyxCMakeColorBoldGreen "${Esc}[1;32m") + set(MyxCMakeColorBoldYellow "${Esc}[1;33m") + set(MyxCMakeColorBoldBlue "${Esc}[1;34m") + set(MyxCMakeColorBoldMagenta "${Esc}[1;35m") + set(MyxCMakeColorBoldCyan "${Esc}[1;36m") + set(MyxCMakeColorBoldWhite "${Esc}[1;37m") +endif() + +function(myx_cmake_message_error) + message(FATAL_ERROR ${MyxCMakeColorBoldRed}${ARGV}${MyxCMakeColorReset}) +endfunction() + +function(myx_cmake_message_warning) + message(WARNING ${MyxCMakeColorRed}${ARGV}${MyxCMakeColorReset}) +endfunction() + +function(myx_cmake_message_status) + message(STATUS ${MyxCMakeColorMagenta}${ARGV}${MyxCMakeColorReset}) +endfunction() + +function(myx_cmake_message_notice) + message(STATUS ${MyxCMakeColorBold}${ARGV}${MyxCMakeColorReset}) +endfunction() + +function(myx_cmake_message) + message(${MyxCMakeColorReset}${ARGV}${MyxCMakeColorReset}) +endfunction() diff --git a/MyxCMake/modules/MyxCMakeCommon.cmake b/MyxCMake/modules/MyxCMakeCommon.cmake index 6f7a014..7f2b2bd 100644 --- a/MyxCMake/modules/MyxCMakeCommon.cmake +++ b/MyxCMake/modules/MyxCMakeCommon.cmake @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.3 FATAL_ERROR) include(GNUInstallDirs) +include(MyxCMakeColoredMessages) include(MyxCMakeCheckPaths) link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) diff --git a/MyxCMake/modules/MyxCMakeCompilerFlags.cmake b/MyxCMake/modules/MyxCMakeCompilerFlags.cmake index a498944..cadad3f 100644 --- a/MyxCMake/modules/MyxCMakeCompilerFlags.cmake +++ b/MyxCMake/modules/MyxCMakeCompilerFlags.cmake @@ -8,11 +8,11 @@ macro(CHECK_ENABLE_CXX_FLAG flag) unset(CMAKE_REQUIRED_QUIET) if(CHECK_CXX_FLAG) - message(STATUS "'${flag}': flag is supported.") + myx_cmake_message_notice("'${flag}': flag is supported.") string(CONCAT _MYX_CMAKE_DETECTED_CXX_FLAGS "${_MYX_CMAKE_DETECTED_CXX_FLAGS} ${flag}") else() - message(STATUS "'${flag}': flag is NOT supported.") + myx_cmake_message_status("'${flag}': flag is NOT supported.") endif() # NOTE: check_cxx_compiler stores variables in the cache. unset(CHECK_CXX_FLAG CACHE) diff --git a/MyxCMake/modules/MyxCMakeDistCC.cmake b/MyxCMake/modules/MyxCMakeDistCC.cmake index 4b0b193..4c11b37 100644 --- a/MyxCMake/modules/MyxCMakeDistCC.cmake +++ b/MyxCMake/modules/MyxCMakeDistCC.cmake @@ -2,12 +2,12 @@ find_program(DISTCC_EXECUTABLE distcc) mark_as_advanced(DISTCC_EXECUTABLE) if(DISTCC_EXECUTABLE) foreach(lang C CXX) - if(NOT DEFINED CMAKE_${lang}_COMPILER_LAUNCHER - AND NOT CMAKE_${lang}_COMPILER MATCHES ".*/distcc$") - message(STATUS "MyxCMake: distcc enabled for ${lang}") - set(CMAKE_${lang}_COMPILER_LAUNCHER - ${DISTCC_EXECUTABLE} - CACHE STRING "") + # cmake-format: off + if(NOT DEFINED CMAKE_${lang}_COMPILER_LAUNCHER AND + NOT CMAKE_${lang}_COMPILER MATCHES ".*/distcc$") + myx_cmake_message("MyxCMake: distcc enabled for ${lang}") + set(CMAKE_${lang}_COMPILER_LAUNCHER ${DISTCC_EXECUTABLE} CACHE STRING "") endif() + # cmake-format: on endforeach() endif()