如何在vcpkg/CMake项目中集成使用Doxygen生成项目文档
vcpkg管理Doxygen工具的实现方案
方案1:直接在项目CMakeLists.txt中调用vcpkg_find_acquire_program
该方案无需修改vcpkg清单配置,适合不想升级vcpkg版本的场景:
- 确认已正确配置vcpkg工具链,即CMake配置时已传入
-DCMAKE_TOOLCHAIN_FILE=<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake参数,如果你已经在CMakeSettings.json中完成了vcpkg相关配置,无需额外调整 - 在CMakeLists.txt中查找Doxygen的逻辑前,直接调用vcpkg提供的全局工具获取函数:
# 调用vcpkg接口获取doxygen可执行文件 vcpkg_find_acquire_program(DOXYGEN) # 后续可直接使用CMake原生Doxygen相关接口 find_package(Doxygen REQUIRED) # 示例:定义文档生成目标 doxygen_add_docs(docs ${PROJECT_SOURCE_DIR}/src COMMENT "Generating API documentation")
调用完成后,DOXYGEN_EXECUTABLE变量会被自动赋值为vcpkg下载的Doxygen可执行文件路径,可直接用于后续文档生成逻辑。
方案2:通过vcpkg.json配置host依赖(推荐)
新版vcpkg已经收录了Doxygen作为host工具port,不需要额外编写CMake逻辑:
- 在项目的vcpkg.json中添加
doxygen为host依赖:
{ "name": "你的项目名", "version": "1.0.0", "dependencies": [ // 你的项目常规依赖 ], "host-dependencies": [ "doxygen" ] }
- 配置完成后,vcpkg会在依赖安装阶段自动下载适配当前平台的Doxygen二进制包,CMake中直接调用
find_package(Doxygen REQUIRED)即可自动识别到vcpkg安装的Doxygen工具。
注意事项
- 若使用方案2遇到
doxygen port not found报错,说明你使用的vcpkg版本较旧,更新vcpkg到最新版本即可,或者直接使用方案1 - 使用方案1时,
vcpkg_find_acquire_program必须在find_package(Doxygen)之前调用,否则CMake可能优先匹配到系统中已安装的其他版本Doxygen - 两个方案都不需要额外修改CMakeSettings.json,只要原有vcpkg工具链配置正确即可正常运行
内容的提问来源于stack exchange,提问作者CygnusX1
相关产品推荐
相关产品推荐

