我正在使用camlp4.macro实现条件编译。 我遇到了一个问题,就是如何通知OCamlbuild,某些标记为"use_jscore"的文件必须使用给定的camlp4选项进行预处理。以下是我目前拥有的内容:
let _ = dispatch begin function
| After_rules ->
flag ["ocaml"; "use_jscore"] (S[A"-package"; A"camlp4.macro"; A"-syntax"; A"camlp4o"; A"-ppopt"; A"-DUSE_JSCORE"]);
但是OCamlbuild对此进行了错误的转义。我正在使用ocamlfind,所以基本上我想告诉OCamlbuild的是所有标记为"use_jscore"的OCaml文件都必须通过camlp4.macro预处理,并且还要给出-DUSE_JSCORE选项。
dep
这个语句重复一遍。如果你不想重复它,你可以将S(...)
的内容存储在一个局部变量中。 - Thomas