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