我试图保持我的项目自包含,在项目存储库中构建和引用所有主要的 3rd 方库依赖项。我项目的主要 ocaml 部分依赖于 ocamlbuild。
但是对于像 Batteries Included 这样的复杂包,似乎强烈期望它们通过 ocamlfind 链接到一个项目中。ocamlfind 似乎假设软件包将被全局安装。(我意识到它允许环境变量及其 conf 指向备用位置,但它基本上似乎仍然是围绕包是全局配置的假设构建的——它没有等效-I
或-L
标志来动态扩展包的搜索路径,例如,可以设置环境变量以动态覆盖 ocamlfind 配置以搜索项目本地树,但这比单纯的参数要尴尬得多,而且在不同时删除的情况下这样做似乎也很有挑战性主要系统包的可发现性site-lib
,这可能也是需要的。)
对于使用 ocamlbuild 的项目,在项目本地树中构建和构建非平凡的 3rd 方包的明智策略是什么?