Как я могу использовать ocamlopt вместо ocamldep при использовании pflag в myocamlbuild?
Я написал myocamlbuild.ml
после этого руководства, содержащего следующий код, чтобы не вводить в командной строке несколько флагов каждый раз при составлении теста, написанного с alcotest
лайк ocamlbuild -use-ocamlfind -package alcotest test_foo.native
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
как я могу это изменить?
1 ответ
Там уже существует предопределенный package(X)
параметризованный тег. Если вы хотите использовать его, вам не нужно myocamlbuild.ml
; если вы хотите переопределить его, чтобы придать ему другое значение, я бы рекомендовал использовать другое имя, чтобы избежать путаницы.
Если то, что вы хотите сделать, это просто пройти -package alcotest
Вам не нужно новое определение флага. Просто используйте
<test_*.ml>: package(alcotest)
и вызвать ocamlbuild с ocamlbuild -use-ocamlfind
,