Files
build_infra/0_cmake_library/Development_Quality_Infrastructure
2026-08-03 12:41:26 +08:00
..
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00
2026-08-03 12:41:26 +08:00

Development Quality Infrastructure

引入

include("${CMAKE_CURRENT_LIST_DIR}/cmake/Development_Quality_Infrastructure/export.cmake")

工具路径优先从 PSC_*_EXECUTABLE 缓存变量读取;变量为空时使用 find_program()。可通过 PSC_TOOL_PATHS_FILE 指定独立工具路径配置文件;相对路径以 Tools.cmake 所在目录为基准。项目也可在引入 export.cmake 前直接设置这些缓存变量。examples/Tool_Paths.Windows.cmake 提供了原 Windows 安装路径的外部配置示例,基础设施本身不再包含这些绝对路径。

公共目标接口

psc_add_cppcheck_target()
psc_add_cognitive_complexity_target()
psc_add_lizard_target()
psc_add_code_count_target()
psc_add_coupling_target()
psc_add_metrics_report_target()
psc_add_doxygen_target()
psc_add_graphviz_render_target()
psc_add_graphviz_directory_target()
psc_add_cmake_target_graph_target()

质量目标通过 target property 暴露产物:

get_property(kind TARGET quality_cppcheck PROPERTY PSC_QUALITY_KIND)
get_property(output_dir TARGET quality_cppcheck PROPERTY PSC_QUALITY_OUTPUT_DIR)
get_property(summary_file TARGET quality_cppcheck PROPERTY PSC_QUALITY_SUMMARY_FILE)

聚合报告直接接收质量目标,不再重复传目录和依赖:

psc_add_metrics_report_target(quality_report
    INPUT_TARGETS quality_cppcheck quality_cognitive quality_lizard quality_code_count quality_coupling
)

所有相对输入路径以调用接口的当前源码目录为基准;相对输出路径以调用接口的当前构建目录为基准。模板和内部模块只通过各自 CMAKE_CURRENT_LIST_DIRCMAKE_CURRENT_FUNCTION_LIST_DIR 定位。