我正在使用ocamlbuild对ocamlfind的本地支持来简化我的项目的构建过程。File foo.ml依赖于使用camlp4的宏进行的条件编译。_tags文件包含以下内容:
<foo.ml>: package(camlp4.macro), syntax(camlp4o)这工作得很好,但我在将选项传递给camlp4时遇到了麻烦。如果不使用ocamlbuild+ocamlfind自动化,命令行将如下所示:
camlp4o pa_macro.cmo -DFOO file.ml但是,在使用ocamlbuild+ocamlfind时,如何将-DFOO变量传递给camlp4?我觉得应该有一个简单的命令行选项,而不是混乱的myocamlbuild.ml。
发布于 2012-08-08 23:36:41
你会惹恼myocamlbuild.ml的。没有内置规则来插入-ppopt,所以它相当冗长,但却很简单。
myocamlbuild.ml:
open Ocamlbuild_plugin ;;
dispatch begin function
| After_rules ->
pflag ["ocaml";"compile";] "define" (fun s -> S [A"-ppopt"; A ("-D"^s)]);
pflag ["ocaml";"ocamldep";] "define" (fun s -> S [A"-ppopt"; A ("-D"^s)])
| _ -> ()
end;;在_tags中
"foo.ml": syntax(camlp4o), package(camlp4.macro), define(FOO)https://stackoverflow.com/questions/11866324
复制相似问题