3

プロジェクトのビルドプロセスを簡素化するために、ocamlfindに対するocamlbuildのネイティブサポートを使用しています。ファイルfoo.mlは、camlp4のマクロを使用した条件付きコンパイルに依存しています。この_tagsファイルには次のものが含まれています。

<foo.ml>: package(camlp4.macro), syntax(camlp4o)

これはうまく機能しますが、camlp4にオプションを渡すのに問題があります。ocamlbuild + ocamlfind自動化を使用しない場合、コマンドラインは次のようになります。

camlp4o pa_macro.cmo -DFOO file.ml

しかし、-DFOOocamlbuild + ocamlfindを使用するときにcamlp4に変数を渡すにはどうすればよいですか?をいじる代わりに、単純なコマンドラインオプションがあるべきだと思いますmyocamlbuild.ml

4

1 に答える 1

5

あなたはを台無しにするつもり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)
于 2012-08-08T15:36:41.120 に答える