Как я могу использовать 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,

Другие вопросы по тегам