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

Ocaml 如何强制Oasis在给定目录中构建文档?,ocaml,oasis,Ocaml,Oasis,我正在使用OCaml项目的构建系统,我希望构建文档并将其放入${projectroot}/doc/api/中 现在,我的\u oasis文件是这样的: OASISFormat: 0.4 Name: MyProject Version: 0.1alpha Plugins: META (0.4) BuildTools: ocamlbuild AlphaFeatures: ocamlbuild_more_args PostDistcleanCommand: $rm _tags myocamlbuil

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

现在,我的
\u 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
...
然后,我在项目的顶部目录中获得一个链接,链接到我期望的文档。但是,似乎没有考虑带有额外参数的
-d doc/api


那么,我错过了什么?因为,我这里的想法有点太少了…

一个合适的方法是使用
install
命令将您的文档(以及其他数据)复制到适当的位置,可以使用
configure
命令或
InstallDir
字段进行自定义


此外,如果您仍然希望在项目内部迁移文档,而不进行安装,则可以使用
PostCommand
字段,并使用一个小脚本(或一行代码)将文档移动到更好的位置

我怀疑你不能做你想做的事。oasis使用ocamlbuild,这是ocamldoc生成,与ocamlbuild一起工作。如果您在doc中编写api.odocl文件,那么文档将在doc/api.docdir中,但我不知道您是否可以使用oasis完成此操作。拥有
doc/api.docdir
对我来说也可以。更重要的是,在项目rootdir中有一切让我不安的东西。但是,由于我对OCaml还很陌生,如果在topdir上有链接是通常的做法,我将遵从它。我只是在学习。符号链接只是一种方便,您可以通过调用ocamlbuild来避免它,方法是使用
--无链接
。注意,选项是
-无链接
(开始时是一个独特的破折号)。我想这就是实现它的方法。我真的没有发现有一个
后命令
,但如果它能起作用,对我来说没关系。现在,我更好地理解了为什么在BAP中有这个
bapdoc.ml
:-)主要原因是,
ocamldoc
在存在camlp4语法扩展时行为不正确。所以这个脚本只是执行预处理来删除预处理:)啊,谢谢你的评论,因为我还没有使用camlp4,这可能会在将来有所帮助<代码>安装和
配置
用于哪个程序的命令,如何使用?