我在this manual之后编写了一个包含以下代码的myocamlbuild.ml
,以便每次编译用alcotest
编写的测试时都不必在命令行输入一些标记ocamlbuild -use-ocamlfind -package alcotest test_foo.native
1}}
open Ocamlbuild_plugin
let () =
dispatch & function
| Before_rules ->
pflag ["test_alcotest"] "package" & fun name -> S [A "-use-ocamlfind"; A "-package"; A name]
| _ -> ()
我想象命令ocamlbuild test_foo.native
会读取我在_tags
文件中定义的标记
<test_*.ml>: test_alcotest, package(alcotest)
并会拨打ocamlc.opt -c -o -use-ocamlfind -package alcotest test_foo.ml
,但不会;相反它叫ocamldep.opt -use-ocamlfind -package alcotest -pp '-use-ocamlfind -package alcotest' -modules test_foo.ml > test_foo.ml.depends
我怎么能改变它?
答案 0 :(得分:0)
已存在预定义的myocamlbuild.ml
参数化标记。如果你想使用它,你不需要-package alcotest
;如果你想覆盖它以赋予它不同的含义,我宁愿建议使用另一个名称来避免混淆。
如果你想做的只是通过
<test_*.ml>: package(alcotest)
,你就不需要新的标志定义了。只需使用
ocamlbuild -use-ocamlfind
并使用foreach ( $foo->link as $link ) {
$type = (string) $link['type'];
if ( $type == 'text/html' ) {
echo (string) $link['title'];
}
}
调用ocamlbuild。