如何正确便捷查看Findxxx.cmake中的CMake包说明文档?
CMake Find模块文档便捷查看实现方案
命令行快速查看(实现cmake-show-module指令)
不需要自己解析Findxxx.cmake文件内的rst注释块,CMake原生自带模块文档导出能力,直接基于这个能力写个薄封装脚本即可:
- 核心依赖:CMake内置的
cmake --help-module <模块名>指令,会自动从本地安装的CMake模块目录提取对应模块的文档,渲染为格式化纯文本输出,兼容所有CMake版本,不需要额外安装rst渲染工具。 - 脚本实现(Linux/macOS bash版本):
新建名为cmake-show-module的文件,写入以下内容,放到/usr/local/bin这类在系统PATH里的目录,加上可执行权限chmod +x cmake-show-module即可直接调用:#!/bin/bash if [ $# -ne 1 ]; then echo "用法: cmake-show-module <模块名>" echo "示例: cmake-show-module boost" exit 1 fi # 自动适配输入的大小写、补全Find前缀 TARGET_MODULE=$1 # 首字母自动大写适配Find模块命名规则 TARGET_MODULE="$(tr '[:lower:]' '[:upper:]' <<< ${TARGET_MODULE:0:1})${TARGET_MODULE:1}" # 优先匹配Find<Name>格式模块 if cmake --help-module Find$TARGET_MODULE >/dev/null 2>&1; then TARGET_MODULE="Find$TARGET_MODULE" fi # 输出内容交给分页器,支持翻页、搜索,和man命令体验一致 cmake --help-module $TARGET_MODULE | less -R - Windows下实现逻辑完全一致,写PowerShell脚本即可,接收参数后调用
cmake --help-module,将输出管道传递给Out-Host -Paging实现分页查看,脚本放到PATH包含的目录下,就能在CMD/PowerShell里直接调用。
VSCode中悬停查看find_package对应文档
不需要从零开发插件,用现有官方扩展即可实现:
- 安装官方发布的CMake Tools扩展,不要使用第三方同类型CMake插件避免兼容问题。
- 打开扩展设置,确认
CMake > Hover: Enabled配置项为勾选状态(默认开启,部分用户优化配置时可能手动关闭)。 - 在设置中
CMake: Cmake Path项填入本地CMake可执行文件的完整路径,确保扩展能正常调用本地CMake程序。 - 配置完成后,编辑CMake文件时将鼠标悬停在
find_package(XXX)语句的包名位置,就会自动弹出对应Find模块的核心说明,包含版本参数规则、可选组件、预定义缓存变量等常用内容,不需要手动打开模块源文件。 - 如果需要展示完整的rst格式文档而非精简说明,可以额外安装reStructuredText语法扩展,关联本地CMake模块路径做自定义悬停规则即可,日常开发官方扩展提供的悬停内容完全够用。
注意:不要自己写正则解析
Findxxx.cmake文件内的rst注释边界,不同CMake版本的注释块标记规则存在微调,直接调用CMake自带的--help-module接口获取文档是兼容性最高的方案,命令行工具、编辑器插件都可以复用这个接口。
内容的提问来源于stack exchange,提问作者洪古格
相关产品推荐
相关产品推荐

