我有一个ocamlbuild项目,其中包含一个子目录中的一些文件,其中列出了.mlpack文件。
e.g。我有一个文件support/logging.ml
,它定义了模块Support.Logging
。 _tags
文件显示"support": for-pack(Support)
。
这一切都构建并运行良好。但是如何使用ocamldoc为此生成文档?
我发现的最新帖子是2011年的ocamldoc generation and packed files,建议使用ocp-pack
生成一个大的.ml文件并将其传递给ocamldoc
。但是,这没有考虑构建顺序,因此生成的模块由于前向引用而无法工作。
处理此问题的最佳方法是什么?
答案 0 :(得分:3)
问题在the following bugreport中描述。在ocamldoc中处理-pack
需要一个维护者没有动力执行的实现工作,到目前为止还没有人加紧为此功能提供补丁。
与此同时,您可以轻松地将foo.mlpack
文件复制到foo.odocl
,生成单独子模块的文档。这只是一个不完美的解决方法,因为文档会讨论X
而不是Foo.X
,但这是最省力的解决方案。
答案 1 :(得分: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
这很糟糕,因为: