Doxygen源码分析:构建过程简介,并生成doxygen自身的C++文档

2023-05-19 11:52:17
ChrisZZ imzhuo@foxmailcom
Hompage https://github.com/zchrissirhcz


在这里插入图片描述

1. doxygen 版本

zz@Legion-R7000P% git log             
commit acb04c2a27e29b82e697d20ac0561034f0a16e20 (HEAD -> master, origin/master, origin/HEAD)
Author: Dimitri van Heesch <doxygen@gmail.com>
Date:   Sun May 14 12:12:28 2023 +0200

    Rename GENERATE_SITEMAP to SITEMAP_URL

2. 找出所有的 CMakeLists.txt 和 *.cmake 文件

doxygen 使用 cmake 进行构建, cmake 构建的描述文件是 CMakeLists.txt*.cmake

$ find . -type f -name 'CMakeLists.txt' -o -name '*.cmake' | sort -V

整理得到的层级结构:

- CMakeLists.txt
    - addon/
        - CMakeLists.txt
        - doxmlparser/
            - CMakeLists.txt
        - doxyapp/
            - CMakeLists.txt
        - doxyparse/
            - CMakeLists.txt
        - doxysearch/
            - CMakeLists.txt
        - doxywizard/
            - CMakeLists.txt
    - cmake/
        - Sanitizers
            - FindASan.cmake
            - FindMSan.cmake
            - FindSanitizers.cmake
            - FindTSan.cmake
            - FindUBSan.cmake
            - sanitize-helpers.cmake
        - ApplyEditbin.cmake
        - CompilerWarnings.cmake
        - Coverage.cmake
        - FindIconv.cmake
        - FindJavacc.cmake
        - FindSQLite3.cmake
        - FindgenerateDS.cmake
        - Findxapian.cmake
        - SearchReplace.cmake
        - doxygen_version.cmake
        - git_watcher.cmake
        - packaging.cmake
        - version.cmake
    - deps/
        - CMakeLists.txt
        - liblodepng/
            - CMakeLists.txt
        - libmd5/
            - CMakeLists.txt
        - libmscgen/
            - CMakeLists.txt
        - spdlog/
            - CMakeLists.txt
            - cmake/
                - ide.cmake
                - spdlogCPack.cmake
                - utils.cmake
    - doc/
        - CMakeLists.txt
    - doc_internal/
        - CMakeLists.txt
    - examples/
        - CMakeLists.txt
    - libversion/
        - CMakeLists.txt
    - libxml/
        - CMakeLists.txt
    - src/
        - CMakeLists.txt
    - testing/
        - CMakeLists.txt
    - vhdlparser/
        - CMakeLists.txt

3. cmake 构建目标清单

有如下的 cmake target, 最核心的是 doxymain 这个静态库, 而 doxygen 则是可执行目标, 是调用了 doxymain:

target 名字target 类型
md5STATIC_LIBRARY
lodepngSTATIC_LIBRARY
mscgenSTATIC_LIBRARY
spdlogSTATIC_LIBRARY
spdlog_header_onlyINTERFACE_LIBRARY
check_git_repositoryUTILITY
check_doxygen_versionUTILITY
doxygen_versionSTATIC_LIBRARY
xmlSTATIC_LIBRARY
vhdlparserSTATIC_LIBRARY
generate_configvalues_headerUTILITY
doxycfgSTATIC_LIBRARY
doxymainSTATIC_LIBRARY
doxygenEXECUTABLE
docs_internalUTILITY
testsUTILITY

4. 生成 Doxygen 自己的文档

Doxygen 官网的文档, 并不是 Doxygen 自身的 C/C++ 代码的 doxygen 文档, 源码工程里也没有提供, 需要自行编写配置文件 Doxyfile, 然后调用 doxygen 来生成:

D:\dbg\doxygen_dev_doc\Doxyfile:

DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "doxygen"
INPUT = D:/github/doxygen/src
EXTRACT_ALL = YES
HTML_TIMESTAMP = YES
RECURSIVE = YES
HTML_OUTPUT=D:/dbg/doxygen_dev_doc/docs
GENERATE_LATEX = NO
GENERATE_HTML = YES
GENERATE_XML = NO
doxygen Doxyfile

请添加图片描述
请添加图片描述
上传了一份 doxygen 的 C++ 文档压缩包到 https://download.csdn.net/download/baiyu33/87800539

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值