- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我生成的文档中包含源代码。这在我调用 ocamldoc
时有效在这样的命令行上:ocamldoc -I _build -html -keep-code -colorize-code *.{ml,mli} -d .docdir
.但是,我在将其与 ocamlbuild
集成时遇到了麻烦。 .
我在 myocamlbuild.ml
中使用以下代码:
open Ocamlbuild_plugin;;
dispatch begin function
| After_options ->
Options.ocamldoc := S[A"ocamldoc"; A"-keep-code"; A"-colorize-code"]
| _ -> ()
end
ocamlbuild
拒绝通过
.ml
文件到
ocamldoc
当有
.mli
文件存在。有没有办法哄 ocamlbuild 做我想做的事?
最佳答案
因为我需要破解一些东西来做类似的事情,所以如果我在这里发布它作为答案可能会有所帮助(至少在 OCamlbuild 具有该功能之前)。所以,这是我的 myocamlbuild.ml
的相关部分:
open Ocamlbuild_plugin;;
dispatch begin function
| After_rules ->
(* Using both .ml and .mli files to build documentation: *)
rule "ocaml: ml & mli -> odoc"
~insert:`top
~tags:["ocaml"; "doc"; "doc_use_interf_n_implem"]
~prod:"%.odoc"
(* "%.cmo" so that cmis of ml dependencies are already built: *)
~deps:["%.ml"; "%.mli"; "%.cmo"]
begin fun env build ->
let mli = env "%.mli" and ml = env "%.ml" and odoc = env "%.odoc" in
let tags =
(Tags.union (tags_of_pathname mli) (tags_of_pathname ml))
++"doc_use_interf_n_implem"++"ocaml"++"doc" in
let include_dirs = Pathname.include_dirs_of (Pathname.dirname ml) in
let include_flags =
List.fold_right (fun p acc -> A"-I" :: A p :: acc) include_dirs [] in
Cmd (S [!Options.ocamldoc; A"-dump"; Px odoc;
T (tags++"doc"++"pp"); S (include_flags);
A"-intf"; P mli; A"-impl"; P ml])
end;
(* Specifying merge options with tags: *)
pflag ["ocaml"; "doc"; "doc_use_interf_n_implem"] "merge"
(fun s -> S[A"-m"; A s]);
end
doc_use_interf_n_implem
至
.ml
和/或
.mli
应该从实现和接口(interface)生成文档的文件应该可以解决问题。
merge(A)
(合并所有)。
camlp[45]
对其进行测试。 -processed 文件,也不使用 4.00.1 以外的 OCamlbuild 版本。
关于ocaml - 使 ocamlbuild 将 .ml 和 .mli 文件都传递给 ocamldoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828221/
我安装的 OCaml 无法识别 #!,因此 camlp4o 无法独立运行。它必须作为“ocamlrun camlp4o”调用。 我尝试在插件中添加一个标志。但是新标志只是添加到现有标志上。 结果是 o
我发布了一个question on the ocaml listserv没有人回应,我希望这里有人可以称我为白痴,确认情况,或者提供创造性的解决方案。 当通过 ocamlbuild 构建动态库时,我卡
我正在尝试编写一个 ocamlbuild 插件 (myocamlbuild.ml),它将使用另一个文件中的定义。我有很多定义,我想在几个构建插件中使用它们,我想把它们放在自己的文件中。我尝试运行 oc
我在将库添加到链接器的顺序方面遇到了问题。之前由 ocamlbuild 构建的库链接在我包含在 flag 中的库列表之后。规则。而且,我没有看到任何方法可以在 myocamlbuild.ml 中定义这
我尝试使用 Opam 提供的 Ocaml 版本编译 Ocaml 项目。 我的 ocamlbuild、ocamlfind 和 oasis 看起来没问题: /Users/fred/.opam/4.02.1
已成功reorganized my project for ocamlbuild with subdirectories并且使用 ocamlfind,我发现很难构建顶层。 我已经构建了一个 .mlto
我有一个项目,其中几个 OCaml 源文件使用 IFDEF。是否有一种简单的方法可以告诉 OCamlbuild 该项目的所有 .ml 文件都应该由 camlp4.macro 进行预处理? 最佳答案 在
我正在尝试使用 ocamlbuild而不是 make ,但我无法正确链接我的目标文件与外部 .cma图书馆。好像ocamlbuild尝试首先确定依赖关系,然后忽略诸如 -L/path/to/lib.c
有没有办法告诉 ocamlbuild 不要进入某些目录? 我的 _tags 里面有以下内容: or : include 但 ocamlbuild 说 dir3 中有一些 .dll(在我清理它们之前拒
我有一个名为 ojasmine 的本地固定 OPAM 项目,我想将其编译为一个库,供另一个名为 test_tournabox 的项目使用(最终编译为 javascript)。但是,test_tourn
在我的项目中,我有一个使用 Core.Std 的文件,所以我运行了 opam install core 并添加 open Core.Std 在我的文件中。 当我跑 ocamlbuild myprogr
我试图保持我的项目自包含,在项目存储库中构建和引用所有主要的 3rd 方库依赖项。我项目的主要 ocaml 部分依赖于 ocamlbuild。 但是对于像 Batteries Included 这样的
我正在尝试制作这段代码: open Lwt;; open Cohttp;; (* a simple function to access the content of the response *)
我正在使用 ocamlbuild 对 ocamlfind 的原生支持来简化我项目的构建过程。文件 foo.ml 依赖于使用 camlp4 的宏进行条件编译。 _tags 文件包含以下内容: : pac
我正在尝试编译使用 xmlrpc-light library 编写的 XML-RPC 服务器。在带有 ocamlbuild 的 OCaml 中,但我得到: $ ocamlbuild server.na
我有一个包含 OCaml .ml 文件和 Menhir .mly 文件的项目。我使用 ocamlbuild 来编译项目。 我的 _tags 文件包含这一行: true: use_menhir, pac
我正在使用 menhir 的 --compile-errors 功能,我对此非常满意。我还使用 ocamlbuild 来管理我的项目的编译。由于该项目非常基础,因此到目前为止构建基础设施仍然微不足道。
如何使用 Ocamlbuild 使用启用的配置文件信息进行构建?似乎 -p 在那里不起作用。 现在,我为此使用 ocamlopt。例如, $ ocamlfind ocamlopt -c -p -thr
我找到了许多关于如何使用 ocamlbuild 从 C 源代码构建 .o 文件的指南。但是,这些不适用于 C++ 文件,ocamlbuild 无法开箱即用。 我已经尝试编写一个 myocamlbuil
我想通过 -S使用 ocamlbuild 和 corebuild 命令构建时标记为 ocamlopt。 我明白了ocamlbuild -cflag -S ...将无法工作,因为 -S标志仅存在于 oc
我是一名优秀的程序员,十分优秀!