ocaml コンパイラが少なくとも 4.05.0 であることを指定する dune-project ファイルがあります。
必要なものがすべて適切にインストールされていることを確認するために構成ファイルを作成しました ( と を組み合わせて使用Unix.open_process_in "which <executabe>"
)dune external-lib-deps --missing @@default
が、OCaml バージョンの場合は次のように記述する必要がありました。
let e = Sys.ocaml_version in
match String.split_on_char '.' e with
| major :: minor :: patchlevel :: _
when int_of_string major >= 4
&& int_of_string minor >= 5
&& int_of_string patchlevel >= 0 ->
printf "%s@," e
| _ -> printf "version < 4.05.0"
しかし、バージョン要件を変更する必要がある場合、このチェックに反映されず、手動で変更する必要があるため、あまり好きではありません。
必要な OCaml パッケージがすべてインストールされていることを確認する方法はありますdune external-lib-deps --missing @@default
か? (必ずしも OCaml コンパイラだけでなく、バージョンにバインドされている各パッケージに対しても?)
依存関係の指定は論理式であるため、構成ファイルに SMT ソルバーを実装できないため、opam の背後にあるソルバーがそれを実行してくれることを願っていました。