3

我有一个 ocamlbuild 项目,其中包含子目录中的一些文件,其中包含列出它们的 .mlpack 文件。

例如,我有一个support/logging.ml定义模块的文件Support.Logging_tags文件"support": for-pack(Support)说。

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

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

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

4

2 回答 2

3

以下错误报告中描述了该问题。在ocamldoc-pack内部进行处理需要维护人员没有动力执行的实施工作,到目前为止,没有人加紧为此功能提供补丁。

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

于 2013-06-29T10:09:05.503 回答
2

这是我现在在 Makefile 中使用的解决方案。它确实有效,并且对 Support 模块的交叉引用有效:

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

这很hacky,因为:

  • 您必须手动按构建顺序列出 support.ml 文件
  • Makefile 为 Support 添加了文档注释(否则,它需要对第一个子模块的描述,这是您不想要的)
于 2013-06-29T10:25:45.037 回答