Dune — это система сборки для OCaml. Он обеспечивает единообразие работы и заботится о низкоуровневых деталях компиляции OCaml. Вам нужно только предоставить описание вашего проекта, а Дюна сделает все остальное.
Dune реализует схему, вдохновленную той, которая используется в Jane Street, и адаптированную к миру открытого исходного кода. Он развивался в течение длительного времени и ежедневно используется сотнями разработчиков, а это означает, что он тщательно протестирован и продуктивен.
В комплекте с Дюной идет инструкция. Если вы хотите начать работу, не читая слишком много, просмотрите краткое руководство или посмотрите это вводное видео.
Каталог примеров содержит примеры проектов, использующих Dune.
Dune считывает метаданные проекта из файлов dune
, которые представляют собой статические файлы с простым синтаксисом S-выражений. Он использует эту информацию для настройки правил сборки, создания файлов конфигурации для инструментов разработки, таких как Merlin, управления установкой и т. д.
Сама Dune быстрая, имеет очень мало накладных расходов и поддерживает параллельную сборку на всех платформах. Он не имеет системных зависимостей. OCaml — это все, что вам нужно для сборки Dune и пакетов с ее помощью.
В частности, можно установить OCaml в Windows с помощью двоичного установщика, а затем использовать только консоль Windows для сборки Dune и пакетов с помощью Dune.
Dune является компонуемым, что означает, что несколько проектов Dune можно объединить вместе, что приведет к созданию единой сборки, которую Dune знает, как выполнить. Это позволяет создавать монорепозитории проектов.
Dune делает одновременную разработку нескольких пакетов тривиальной задачей.
Дюна умеет обращаться с репозиториями, содержащими несколько пакетов. При сборке через opam умеет корректно использовать ранее установленные библиотеки, даже если они уже присутствуют в дереве исходников.
Магический призыв:
$ dune build --only-packages < package-name > @install
Dune может создать заданный репозиторий исходного кода одновременно для нескольких конфигураций. Это помогает поддерживать пакеты в нескольких версиях OCaml, поскольку вы можете без проблем протестировать их все одновременно.
В частности, это упрощает обработку кросс-компиляции. Для этой функции требуется opam.
Для сборки Dune требуется OCaml версии 4.08.0, и она может создавать проекты OCaml с использованием OCaml 4.02.3 или более поздней версии.
Мы рекомендуем устанавливать Dune через менеджер пакетов opam:
$ opam install dune
Если вы новичок в opam, обязательно запустите eval $(opam config env)
чтобы сделать dune
доступной в вашем PATH
. Бинарный файл 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.