Dune은 OCaml용 빌드 시스템입니다. 일관된 경험을 제공하고 OCaml 컴파일의 하위 수준 세부 사항을 처리합니다. 프로젝트에 대한 설명만 제공하면 나머지는 Dune이 알아서 처리해 드립니다.
Dune은 Jane Street에서 사용된 방식에서 영감을 받아 오픈 소스 세계에 적용한 방식을 구현합니다. 오랜 시간에 걸쳐 발전해 왔으며 수백 명의 개발자가 매일 사용하고 있습니다. 즉, 테스트 수준이 높고 생산성이 뛰어납니다.
Dune에는 설명서가 함께 제공됩니다. 너무 많이 읽지 않고 시작하려면 빠른 시작 가이드를 보거나 이 소개 비디오를 시청하세요.
예제 디렉토리에는 Dune을 사용하는 프로젝트의 예가 포함되어 있습니다.
Dune은 간단한 S-표현식 구문을 사용하는 정적 파일인 dune
파일에서 프로젝트 메타데이터를 읽습니다. 이 정보를 사용하여 빌드 규칙을 설정하고, Merlin과 같은 개발 도구에 대한 구성 파일을 생성하고, 설치를 처리합니다.
Dune 자체는 빠르고 오버헤드가 거의 없으며 모든 플랫폼에서 병렬 빌드를 지원합니다. 시스템 종속성이 없습니다. OCaml은 Dune을 사용하여 Dune과 패키지를 빌드하는 데 필요한 모든 것입니다.
특히 바이너리 설치 프로그램을 사용하여 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
바이너리를 빌드합니다. 두 번째는 매뉴얼 페이지와 같이 Dune이 설치한 추가 파일을 빌드하고 마지막은 단순히 시스템에 해당 파일을 모두 설치합니다.
참고 : 선택 사항인 ./configure
스크립트를 실행하지 않는 한, 간단히 dune.exe
어디든 복사하면 제대로 작동합니다. dune
완전히 재배치 가능하며 컴파일 시간에 하드 코딩하는 대신 런타임에 환경을 검색합니다.
Dune에 대한 질문이나 문제가 있는 경우 GitHub 토론 페이지에 질문하거나 GitHub에서 티켓을 열 수 있습니다.