Я пытаюсь сохранить свой проект автономным, со всеми основными зависимостями сторонних библиотек, построенными и ссылающимися в репозитории проекта. Основные части моего проекта, основанные на ocaml, основаны на ocamlbuild.
Но для сложных пакетов, таких как Batteries Included, кажется, есть большие надежды, что они будут связаны с проектом через ocamlfind. ocamlfind предполагает, что пакеты будут установлены глобально. (Я понимаю, что он позволяет переменным среды и его конфигурации указывать на альтернативные местоположения, но в основном он по-прежнему построен на предположении, что пакеты настроены глобально — у него нет эквивалента флагов -I
или -L
для динамического расширения пути поиска для пакеты, например Можно установить переменные среды для динамического переопределения конфигурации ocamlfind для поиска в локальном дереве проекта, но это гораздо более неудобно, чем простые аргументы, и также кажется, что было бы сложно сделать это без одновременно удаление возможности обнаружения основных системных пакетов в первичном site-lib
, что также может понадобиться.)
Какова разумная стратегия для сборки и сборки нетривиальных сторонних пакетов в локальном дереве проекта для проекта, использующего ocamlbuild?