将ocamldoc与包一起使用

将ocamldoc与包一起使用,ocaml,ocamldoc,Ocaml,Ocamldoc,我有一个ocamlbuild项目,它在一个子目录中包含一些文件,其中一个.mlpack文件列出了这些文件 e、 g.我有一个文件support/logging.ml,它定义了模块support.logging。\u标签文件上写着“支持”:用于包装(支持) 这一切都建立和运行良好。但是如何使用ocamldoc生成文档呢 我最近发现的一篇文章是2011年的,它建议使用ocp-pack生成一个大的.ml文件,并将其传递给ocamldoc。但是,这没有考虑构建顺序,因此生成的模块由于正向引用而无法工作

我有一个ocamlbuild项目,它在一个子目录中包含一些文件,其中一个.mlpack文件列出了这些文件

e、 g.我有一个文件
support/logging.ml
,它定义了模块
support.logging
\u标签
文件上写着
“支持”:用于包装(支持)

这一切都建立和运行良好。但是如何使用ocamldoc生成文档呢

我最近发现的一篇文章是2011年的,它建议使用
ocp-pack
生成一个大的.ml文件,并将其传递给
ocamldoc
。但是,这没有考虑构建顺序,因此生成的模块由于正向引用而无法工作


处理此问题的最佳方法是什么?

中描述了此问题。在ocamldoc中处理
-pack
,需要维护人员不愿意执行的实施工作,到目前为止,还没有人为该功能提供补丁


同时,您可以轻松地将
foo.mlpack
文件复制到
foo.odocl
中,生成单独子模块的文档。这只是一个不完善的解决方案,因为文档将讨论
X
而不是
Foo.X
,但这是一个最省力的解决方案。

以下是我现在在Makefile中使用的解决方案。它确实起作用,并交叉引用到支持模块中:

doc:
    ocp-pack -o support.ml.tmp support/logging.ml support/common.ml support/utils.ml support/basedir.ml support/qdom.ml support/system.ml
    echo '(** General support code; not 0install-specific *)' > support.ml
    cat support.ml.tmp >> support.ml
    rm support.ml.tmp
    $(OCAMLBUILD) 0install.docdir/index.html
    rm support.ml
这是因为:

  • 您必须手动按生成顺序列出support.ml文件
  • Makefile添加文档注释以获得支持(否则,它将获取第一个子模块的描述,这是您不想要的)