cmake 错误提示改明显

This commit is contained in:
2026-08-10 10:11:00 +08:00
parent 97a505decb
commit 3dc0a8a0ed
5 changed files with 136 additions and 28 deletions
+80
View File
@@ -0,0 +1,80 @@
include_guard(GLOBAL)
#[[
\033[1;31;40m <!--1- 31- 40--->
\033[0m <!---->
0
1
4 使线
5
7
8
---------------------------------------
30 40
31 41
32 42 绿
33 43
34 44
35 45
36 46
37 47
]]
# 0x1b
string(ASCII 27 Esc)
# Esc[0;31m
set(R "${Esc}[0;31m") #红色
set(P "${Esc}[0;35m") #紫红色
#Esc[0m
set(E "${Esc}[m") #结束颜色设置
set(B "${Esc}[1;34m") #蓝色高亮
set(_dbg_title "${Esc}[1;31;40m")
set(_h1 "${Esc}[4;34m")
set(__target_name_ "${Esc}[1;33m")
set(Default "${Esc}[0m") # 0 - 终端默认设置
set(Bold "${Esc}[1m") # 1 - 高亮显示(粗体)
set(Underline "${Esc}[4m") # 4 - 使用下划线
set(Blink "${Esc}[5m") # 5 - 闪烁
set(Reverse "${Esc}[7m") # 7 - 反白显示
set(Invisible "${Esc}[8m") # 8 - 不可见
#message("${Default}终端默认设置: 这是一段默认文本${Default}")
#message("${Bold}高亮显示: 这是一段高亮(粗体)文本${Default}")
#message("${Underline}使用下划线: 这是一段带下划线的文本${Default}")
#message("${Blink}闪烁: 这是一段闪烁的文本(如果终端支持)${Default}")
#message("${Reverse}反白显示: 这是一段反白显示的文本${Default}")
#message("${Invisible}不可见: 这段文本应该不可见(如果终端支持)${Default}")
# 形参命名规范
# 1.如果前缀是下划线_,代表传参是变量名,否则是传值
# 2.如果后缀是_list,代表这个变量是列表变量
# 3 单返回值时,返回值放在最后一个参数,命名要么是 _ret 要么是 _ret_list
# 函数命名规范
# 自定义函数统一加前缀下划线_
# 如果函数内部使用临时的列表变量,那么临时的列表变量要在函数开头置空 (为了防止外部定义了该列表变量,使用这个非空的变量导致错误)
# 如果函数特意要使用固定名称的外部变量,那么
# 用于检测 防止穿错参数
macro(__check_none_extr_params argc argn argv)
#__check_none_extr_params(${ARGC} "${ARGN}" "${ARGV}")
set(_err_msg "")
if (NOT "${argn}" STREQUAL "")
string(APPEND _err_msg "检查到多余参数!参数: ${argc} ${argv} 额外的参数: ${argn}")
endif ()
if (NOT "${_err_msg}" STREQUAL "")
message(FATAL_ERROR "${_err_msg}")
endif ()
endmacro()
+1
View File
@@ -1,5 +1,6 @@
include(${CMAKE_CURRENT_LIST_DIR}/register_libaray/rcl_register_ex.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/package_zip.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/color_output.cmake)
macro(w_install files dir)
install(FILES ${files} DESTINATION "${dir}")
endmacro()
@@ -505,3 +505,30 @@ endfunction()
function(rcl_add_dependency_action_targets target_name)
rcl_add_dependency_action_targets_with_depth("${target_name}" 0 ${ARGN})
endfunction()
set_property(GLOBAL PROPERTY rcl_log_list "")
macro(rcl_log_append text)
set(rcl_log_location "${CMAKE_CURRENT_LIST_FILE}")
if (NOT "${CMAKE_CURRENT_FUNCTION}" STREQUAL "")
string(APPEND rcl_log_location " -> ${CMAKE_CURRENT_FUNCTION}()")
endif ()
set_property(GLOBAL APPEND PROPERTY rcl_log_list "${rcl_log_location}|${text}")
endmacro()
function(rcl_log_print)
get_property(rcl_log_list GLOBAL PROPERTY rcl_log_list)
if ("${rcl_log_list}" STREQUAL "")
message("${B}全部加载完成!${E}")
return()
endif ()
set(rcl_log_output "")
foreach (rcl_log IN LISTS rcl_log_list)
string(FIND "${rcl_log}" "|" split_pos)
string(SUBSTRING "${rcl_log}" 0 ${split_pos} location)
math(EXPR text_pos "${split_pos} + 1")
string(SUBSTRING "${rcl_log}" ${text_pos} -1 text)
string(APPEND rcl_log_output "${R}严重错误${E} ${R}${text}${E}\n")
string(APPEND rcl_log_output "${P}调用位置 ${E} file:///${location}\n")
endforeach ()
message("${rcl_log_output}")
endfunction()
+1 -1
View File
@@ -17,5 +17,5 @@ include(${register_dir}/export.cmake)
#rcl_generate_registered_cmake_libraries(osg_earth)
#rcl_generate_registered_cmake_libraries(vsg_cesium)
rcl_log_print()
message("全部加载完成!")
+1 -1
View File
@@ -2,6 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/0_cmake_library/main.cmake)
_load_cmake_library()
rcl_init(global)
rcl_set_root_dir(global "${EXTERNAL_DIR}/${G_Architecture_Name}_global")
include(${CMAKE_CURRENT_LIST_DIR}/0_cmake_library/register/export.cmake)
#set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(ENABLE_BUILD_TIMER ON CACHE BOOL "" FORCE)
@@ -25,4 +26,3 @@ include(${dqi}/Cppcheck/export.cmake) # 静态代码分析工具:检测 C
include(${dqi}/lizard/export.cmake) # 代码复杂度分析工具:统计圈复杂度、函数规模等指标
include(${dqi}/cloc_tokei/export.cmake) # 代码统计工具:统计代码行数、语言组成等信息
include(${dqi}/CodeMetrics/export.cmake) # 软件度量工具:分析代码质量指标