Dune は OCaml 用のビルド システムです。一貫したエクスペリエンスを提供し、OCaml コンパイルの低レベルの詳細を処理します。プロジェクトの説明を入力するだけで、残りは Dune が行います。
Dune は、Jane Street 内で使用されているスキームからインスピレーションを得て、オープンソースの世界に適応させたスキームを実装しています。これは長い時間をかけて成熟し、何百人もの開発者によって毎日使用されており、高度にテストされ、生産性が高いことを意味します。
デューンには説明書が付属します。あまり読み込まずに開始したい場合は、クイック スタート ガイドを参照するか、この紹介ビデオをご覧ください。
サンプル ディレクトリには、Dune を使用したプロジェクトのサンプルが含まれています。
Dune は、単純な S 式構文を持つ静的ファイルであるdune
ファイルからプロジェクト メタデータを読み取ります。この情報は、ビルド ルールのセットアップ、Merlin などの開発ツールの構成ファイルの生成、インストールの処理などに使用されます。
Dune 自体は高速で、オーバーヘッドがほとんどなく、すべてのプラットフォームでの並列ビルドをサポートしています。システムへの依存関係はありません。 Dune と Dune を使用したパッケージを構築するために必要なのは OCaml だけです。
特に、バイナリ インストーラーを使用して Windows に OCaml をインストールし、Windows コンソールのみを使用して Dune と Dune を使用したパッケージをビルドできます。
Dune は構成可能です。つまり、複数の Dune プロジェクトを一緒に配置して、Dune が実行方法を知っている単一のビルドを作成できます。これにより、プロジェクトのモノリポジトリが可能になります。
Dune を使用すると、複数のパッケージでの同時開発が簡単な作業になります。
Dune は、複数のパッケージを含むリポジトリを処理する方法を知っています。 opam 経由でビルドする場合、ソース ツリーに既に存在するライブラリであっても、以前にインストールされたライブラリを正しく使用できます。
魔法の呼び出しは次のとおりです。
$ dune build --only-packages < package-name > @install
Dune は、複数の構成に対して特定のソース コード リポジトリを同時に構築できます。これにより、手間をかけずにすべてのパッケージを一度にテストできるため、OCaml の複数のバージョンにわたってパッケージを維持するのに役立ちます。
これにより、特にクロスコンパイルの処理が容易になります。この機能には opam が必要です。
Dune のビルドには OCaml バージョン 4.08.0 が必要で、OCaml 4.02.3 以降を使用して OCaml プロジェクトをビルドできます。
opam パッケージ マネージャーを介して Dune をインストールすることをお勧めします。
$ opam install dune
opam を初めて使用する場合は、必ずeval $(opam config env)
を実行して、 PATH
でdune
使用できるようにしてください。 dune
バイナリは自己完結型で再配置可能なため、別の場所に安全にコピーして永続的に利用できるようにすることができます。
次のように手動でビルドすることもできます。
$ make release
$ make install
make
がない場合は、次のことができます。
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
最初のコマンドはdune.exe
バイナリをビルドします。 2 つ目は、マニュアルページなど、Dune によってインストールされる追加ファイルを構築し、最後のものは単にそのすべてをシステムにインストールします。
注: オプションの./configure
スクリプトを実行しない限り、 dune.exe
どこにでもコピーするだけで機能します。 dune
完全に再配置可能であり、コンパイル時にハードコーディングするのではなく、実行時に環境を検出します。
Dune について質問や問題がある場合は、GitHub ディスカッション ページで質問するか、GitHub でチケットを開くことができます。