如何强制 Oasis 在给定目录中构建文档?

How to force Oasis to build the documentation in a given directory?

我正在为 OCaml 项目使用 Oasis 构建系统,我想构建文档并将其放入 ${projectroot}/doc/api/

现在,我的 _oasis 文件是这样的:

OASISFormat: 0.4
Name: MyProject
Version: 0.1alpha
Plugins: META (0.4)
BuildTools: ocamlbuild
AlphaFeatures: ocamlbuild_more_args

PostDistcleanCommand: $rm _tags myocamlbuild.ml setup.ml setup.data

Document api
Title: MyProject API
Type: ocamlbuild (0.4)
BuildTools: ocamldoc
XOCamlbuildPath: src
XOCamlbuildExtraArgs: -docflags -d,doc/api,-colorize-code,-charset,utf-8

然后,我运行执行以下命令:

$> oasis setup
$> ocaml setup.ml -configure
...
$> ocaml setup.ml -doc
...

然后,我在项目的顶层目录 link 得到一个 link api.docdir/ --> _build/src/api.docdir/ 到我期望的文档。但是,似乎没有考虑带有额外参数的-d doc/api

那么,我错过了什么?因为,我有点 运行 没主意了...

一种正确的方法是使用 install 命令将您的文档(以及其他数据)复制到适当的位置,可以使用 configure 命令或 InstallDir 字段。

此外,如果您仍然想在项目中迁移您的文档,而不进行安装,那么您可以使用 PostCommand 字段,并使用一个小脚本(或仅一行)来移动您的文档在一个更好的地方。