2013-04-24 2 views
2

Я пишу библиотеку кодировщика/декодера bson в ocaml.Как написать библиотеку в OCaml?

У меня есть исходный файл (фактически всего один файл).

Мой вопрос заключается в том, как мне сделать это как библиотеку, такую ​​как ocaml-batteries-included, camomile и т. Д.?

Я имею в виду, люди могут использовать opam install и использовать ocamlfind + ocamlbuild, чтобы скомпилировать его?

ответ

5

Поддержка ocamlfind действительно проста, и нет никаких оправданий, чтобы не делать этого. В принципе, выберите любую «подобную» библиотеку, найдите META-файл и адаптируйте его к своей собственной настройке. Я дал некоторые основные инструкции в this StackOverflow answer.

OCamlbuild - это система сборки, которую вы можете решить использовать или нет, но не должна влиять на ваших пользователей (помимо того, что они будут устанавливать ее до создания ваших программ). Вы также можете использовать Makefile или любую другую систему сборки (omake и т. Д.). Идея ocamlbuild заключается в том, чтобы предоставить файл _tags с достаточной информацией для создания вашей библиотеки/программы (и если вы делаете продвинутый материал и файл myocamlbuild.ml). Опять же, посмотрите, какие проекты имеют структуру, похожую на вашу.

Для Опама есть packaging guide, чтобы указать направление (но опять же, просто приспосабливайте то, что делают другие люди).

2

Я отправлю что-то немного нестандартное, но полностью пригодное для использования: obuild. Все, что вам нужно, это файл project.obuild, а затем obuild build построит ваш проект. obuild install установит его с помощью ocamlfind.

Установите obuild из github вместо opam, однако, поскольку версия opam немного устарела. Ниже представлен пример файла obuild. https://github.com/vbmithr/ocaml-websocket/blob/master/websocket.obuild

+0

похоже, что ocaml-websocket использует оазис с ocamlbuild ... – unhammer

2

Идём на Oasis; вы в основном создаете файл _oasis, который описывает вашу библиотеку. Инструмент oasis затем создаст для вас систему сборки. Вы можете установить Oasis через Opam. Учебник quick start для Oasis, который поможет вам начать работу.

Oasis - это попытка стандартизировать читаемое компьютером описания пакетов OCaml. И хотя на нем он может создать систему сборки как побочный продукт (в настоящее время поддерживается ocamlbuild, а поддержка Makefile).