Использование ocamldoc с пакетами

У меня есть проект ocamlbuild, который включает некоторые файлы в подкаталог с файлом.mlpack, перечисляя их.

например, у меня есть файл support/logging.ml который определяет модуль Support.Logging, _tags файл говорит "support": for-pack(Support),

Это все строит и работает нормально. Но как я могу сгенерировать документы для этого с помощью ocamldoc?

Самым последним сообщением, которое я нашел, было поколение ocamldoc и упакованные файлы 2011 года, в которых предлагается использовать ocp-pack создать один большой файл.ml и передать его ocamldoc, Однако это не учитывает порядок сборки, поэтому сгенерированный модуль не работает из-за прямых ссылок.

Какой лучший способ справиться с этим?

2 ответа

Решение

Вот решение, которое я сейчас использую в своем Makefile. Это работает, и перекрестные ссылки в модуль поддержки работают:

doc:
    ocp-pack -o support.ml.tmp support/logging.ml support/common.ml support/utils.ml support/basedir.ml support/qdom.ml support/system.ml
    echo '(** General support code; not 0install-specific *)' > support.ml
    cat support.ml.tmp >> support.ml
    rm support.ml.tmp
    $(OCAMLBUILD) 0install.docdir/index.html
    rm support.ml

Это взломано, потому что:

  • Вы должны перечислить файлы support.ml в порядке сборки вручную
  • Makefile добавляет комментарии к документации для поддержки (в противном случае требуется описание первого подмодуля, который вам не нужен)

Проблема описана в следующем сообщении об ошибке. обращение -pack Внутри ocamldoc требуются усилия по внедрению, которые сопровождающий не мотивирует выполнять, и до сих пор никто не подошел, чтобы внести исправление для этой функции.

В то же время, вы можете легко скопировать foo.mlpack файл в foo.odocl генерирование документации отдельных подмодулей. Это всего лишь несовершенный обходной путь, так как доктор расскажет о X скорее, чем Foo.X, но это решение с наименьшими усилиями.

Другие вопросы по тегам