# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################## # Highlight WARNING and ERROR messages ############################################################################## function(message) list(GET ARGV 0 type) if("$ENV{TERM}" STREQUAL "xterm-256color") string(ASCII 27 esc) set(red "${esc}[1;31m") set(yellow "${esc}[1;33m") set(reset "${esc}[m") endif() if(type STREQUAL FATAL_ERROR OR type STREQUAL SEND_ERROR) list(REMOVE_AT ARGV 0) _message(${type} "${red}${ARGV}${reset}") elseif(type STREQUAL WARNING) list(REMOVE_AT ARGV 0) _message(STATUS "${yellow}${ARGV}${reset}") elseif(type STREQUAL STATUS) list(REMOVE_AT ARGV 0) _message(STATUS "${ARGV}") else() _message(${ARGV}) endif() endfunction() ############################################################################## # aligned config output ############################################################################## function(pr desc) # CMake 3.12+: list(JOIN ARGN " " val) string(REPLACE ";" " " val "${ARGN}") if("$ENV{TERM}" STREQUAL "xterm-256color") string(ASCII 27 esc) set(reset "${esc}[m") set(cyan "${esc}[36m") endif() string(LENGTH ${desc} len) while (len LESS 20) set (desc "${desc} ") string(LENGTH ${desc} len) endwhile() _message("${cyan}${desc}${reset}: ${val}") endfunction() ############################################################################## # string append ############################################################################## macro(string_append var str) if (NOT ${var}) set(${var} "${str}") else() set(${var} "${${var}} ${str}") endif() endmacro()