使用ocamldoc和packs

3
我有一个ocamlbuild项目,其中包含一个子目录中的一些文件,该子目录具有列出它们的.mlpack文件。
例如,我有一个文件support/logging.ml,它定义了模块Support.Logging_tags文件说"support": for-pack(Support)
这一切都可以构建和运行良好。但是,我如何使用ocamldoc生成这个的文档?
我找到的最新帖子是2011年的ocamldoc generation and packed files,它建议使用ocp-pack生成一个大的.ml文件,并将其传递给ocamldoc。但是,这不考虑构建顺序,因此由于前向引用,生成的模块无法工作。
处理这个的最佳方法是什么?
2个回答

3
问题描述在以下错误报告中。在ocamldoc内处理-pack需要实现的工作,维护者没有动力去执行,到目前为止,没有人提供该功能的补丁。
同时,您可以将foo.mlpack文件复制到foo.odocl中,生成单独子模块的文档。这只是一个不完美的解决方法,因为文档将谈论X而不是Foo.X,但这是最简单的解决方案。

2

这是我现在在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

这种方法不太规范,因为:

  • 你需要手动按照构建顺序列出支持的.ml文件
  • Makefile会添加Support的文档注释(否则它会采用第一个子模块的描述,这不是你想要的)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接