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

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)
include(GNUInstallDirs)
include(MyxCMakeColoredMessages)
include(MyxCMakeCheckPaths)
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})

View File

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

View File

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