I'm trying to build my system using Oasis and OCamlbuild. I have 3 different libraries and for some reason I seem to only be able to refer from one to the other in seemingly random files. For example, I want my 'ppx' library to be able to use functions from my 'parser' library. One file (
ppx_forest.ml) can use functions from it, while another in the same library (
skins.ml) cannot, giving me this error:
File "_none_", line 1:
Error: No implementations provided for the following modules:
Forest_parser_helper referenced from ppx/ppx.cmxa(Skins)
Command exited with code 2.
They can all refer to types I've defined therein though.
I'm not fantastic at Oasis so maybe I'm just missing something basic? Any ideas? Any more information I can gather to give more context otherwise?
Library forest
Path: lib
BuildTools: ocamlbuild
BuildDepends: pads, str, re, re.glob, core, threads, ppx_let
CompiledObject: best
Modules: Forest, PadsInterface
Library parser
Path: parsing
BuildTools: ocamlbuild, menhir, ocamllex
Findlibparent: forest
Findlibname: parser
BuildDepends: forest, ppx_deriving.show, compiler-libs.common
CompiledObject: best
Modules: Forest_parser_helper
InternalModules: Forest_lexer, Forest_parser, Forest_types
Library ppx
Path: ppx
BuildTools: ocamlbuild
Findlibparent: forest
Findlibname: ppx
BuildDepends: re, re.str, forest.parser, forest, ppx_tools.metaquot
CompiledObject: best
Modules: Ppx_forest
InternalModules: Ppx_forest_lib, Utility, Skins
XMETAEnable: true
XMETARequires: str re core threads ppx_tools.metaquot
XMETAExtraLines: ppx = "ppx_forest"
Executable ppx_forest
Path: ppx
BuildDepends: forest, forest.parser, forest.ppx, pads.ppx, ppx_tools.metaquot
CompiledObject: best