Как мне написать библиотеку на OCaml?

Я пишу библиотеку кодировщика/декодера bson в ocaml.

Теперь у меня есть исходный файл (на самом деле только один файл).

Мой вопрос в том, как мне сделать это библиотекой, такой как ocaml-batteries-included, camomile и т. д.?

Я имею в виду, люди могут использовать opam install его и использовать ocamlfind + ocamlbuild для компиляции с ним?


person Jackson Tale    schedule 24.04.2013    source источник


Ответы (3)


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

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

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

person gasche    schedule 24.04.2013

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

Однако установите obuild с github вместо opam, так как версия opam немного устарела. Вот пример файла obuild, чтобы дать вам представление: https://github.com/vbmithr/ocaml-websocket/blob/master/websocket.obuild

person rgrinberg    schedule 24.04.2013
comment
похоже, что ocaml-websocket использует oasis с ocamlbuild… - person unhammer; 30.08.2014

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

Oasis — это попытка стандартизировать машиночитаемое описание пакетов OCaml. И в то же время он может создать систему сборки как побочный продукт (в настоящее время поддерживается система на основе ocamlbuild и Makefiles).

person lambdapower    schedule 25.04.2013