Oasis构建配置与子目录

时间:2015-02-04 18:44:40

标签: ocaml ocamlbuild

我正在使用oasis构建我的ocaml项目,源代码存在于名为src的目录中。绿洲构建文件如下所示:

OASISFormat: 0.4
Name:        Test
Version:     0.1
Synopsis:    no
Authors:     Me
License:     BSD-3-clause
Plugins:     META (0.4)

Executable abc
  Path:        src
  BuildTools:  ocamlbuild
  MainIs:      main.ml

现在我想将文件组织到子文件夹中,将a.mli和a.ml放入src / util中。执行此操作后,模块对ocamlbuild / ocamlc不可见,从而导致“未绑定的模块A”错误。如果我手动调用ocamlc,我可以添加-I src / util标志以使a.mli再次可见。

如何在不使文件成为完整库的情况下向oasis配置添加其他路径?

2 个答案:

答案 0 :(得分:5)

绿洲是不可能的,你需要修改你的_tags文件,但我不建议你这样做。一般方法是在您的绿洲文件中创建Library条目。这有助于保持项目结构清洁。如果你不想从utils创建一个库,那么为什么要烦恼并将它移动到一个子文件夹中。

答案 1 :(得分:3)

您可以尝试将<src/utils>: include添加到_tags文件中(此文件由绿洲生成,您无法对其进行编辑:在生成的部分范围之外进行编辑。

这将直接告诉ocamlbuild在其参数中添加-I src / utils,我不认为可以告诉oasis自己这样做而不需要创建库。