使用Doxygen生成UE4的chm格式API文档

UE4官方的API文档不方便查阅,搜索很不方便。如果有chm格式的文档就可以快速搜索。

在UE4安装目录下有自带的html文档:

1
Engine\Documentation\Builds\CppAPI-HTML.tgz

解压后在en-US

首先尝试过html2chm、hugechm、easychm这几个软件直接进行转换,但是显示效果不行,而且总是报javascript错误,一直没法解决。

于是尝试直接从源代码生成html文档,然后编译压缩成chm格式的。

首先需要安装Doxygen,官网

开始进行配置

在Wizard>Project只需要设置输出目录并勾选Scan recursively(源代码目录后面再设置)

Wizard>Mode勾选All Entities和Optimize for C++

Wizard>Output选择prepare for chm和With search function

Diagram是生成类图,勾选后会生成比较大的文件,很耗时

Expert页面可以选择创建子目录,然后拉到最下面

要把这两项都设大一些,不然速度很慢而且很可能崩溃。。

Input设置如上,其实只要Runtime目录下的基本就可以了,只需要解析头文件,还有Private目录的文件也不需要解析,这样也可以加快生成速度

Source Browser可以取消勾选VERBATIM_HEADERS,勾选的话会将所有头文件复制一份,方便直接从文档跳转到头文件,但是文档会很臃肿

HTML页面要勾选生成HTMLHELP,然后指定生成的文件名,HHC_LOCATION在C:/Program Files (x86)/HTML Help Workshop/hhc.exe

左边最底下Dot页也推荐取消生成类图,非常耗时

最后到Run页面运行即可

如果上面几步勾选了生成类图,用的还是Dot;源码目录直接选择了Source,还勾选了复制头文件的那一项,而且没有过滤Private的话,内存占用平均会在26GB左右我挂了一晚上都还没跑完。。

不选择那几项的话也需要至少10GB的内存,内存不够就只能用加虚拟内存,速度会很慢。

其实按照这几步下来,最后会提示编译生成chm文件的时候出错:hhc.exe不能处理index.hhp或者是hhc.exe内存不足以运行。

试过将32位程序可用内存加大但是依然不行,暂时也是没有办法解决。最后还是使用外部工具,比如easychm,来进行最后一步的编译压缩。