Функции для подсветки вывода сообщений в терминале

This commit is contained in:
Andrei Astafev 2021-12-21 13:15:59 +03:00
parent ea38edfdc4
commit 9401cb4c3f
4 changed files with 48 additions and 8 deletions

View File

@ -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()

View File

@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.3 FATAL_ERROR) cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
include(GNUInstallDirs) include(GNUInstallDirs)
include(MyxCMakeColoredMessages)
include(MyxCMakeCheckPaths) include(MyxCMakeCheckPaths)
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})

View File

@ -8,11 +8,11 @@ macro(CHECK_ENABLE_CXX_FLAG flag)
unset(CMAKE_REQUIRED_QUIET) unset(CMAKE_REQUIRED_QUIET)
if(CHECK_CXX_FLAG) 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 string(CONCAT _MYX_CMAKE_DETECTED_CXX_FLAGS
"${_MYX_CMAKE_DETECTED_CXX_FLAGS} ${flag}") "${_MYX_CMAKE_DETECTED_CXX_FLAGS} ${flag}")
else() else()
message(STATUS "'${flag}': flag is NOT supported.") myx_cmake_message_status("'${flag}': flag is NOT supported.")
endif() endif()
# NOTE: check_cxx_compiler stores variables in the cache. # NOTE: check_cxx_compiler stores variables in the cache.
unset(CHECK_CXX_FLAG CACHE) unset(CHECK_CXX_FLAG CACHE)

View File

@ -2,12 +2,12 @@ find_program(DISTCC_EXECUTABLE distcc)
mark_as_advanced(DISTCC_EXECUTABLE) mark_as_advanced(DISTCC_EXECUTABLE)
if(DISTCC_EXECUTABLE) if(DISTCC_EXECUTABLE)
foreach(lang C CXX) foreach(lang C CXX)
if(NOT DEFINED CMAKE_${lang}_COMPILER_LAUNCHER # cmake-format: off
AND NOT CMAKE_${lang}_COMPILER MATCHES ".*/distcc$") if(NOT DEFINED CMAKE_${lang}_COMPILER_LAUNCHER AND
message(STATUS "MyxCMake: distcc enabled for ${lang}") NOT CMAKE_${lang}_COMPILER MATCHES ".*/distcc$")
set(CMAKE_${lang}_COMPILER_LAUNCHER myx_cmake_message("MyxCMake: distcc enabled for ${lang}")
${DISTCC_EXECUTABLE} set(CMAKE_${lang}_COMPILER_LAUNCHER ${DISTCC_EXECUTABLE} CACHE STRING "")
CACHE STRING "")
endif() endif()
# cmake-format: on
endforeach() endforeach()
endif() endif()