B00_ocaml.LibSourceLibrary information and lookup.
An OCaml library is a directory with interfaces and object files. OCaml libraries are resolved by name using a B00_ocaml.Resolver.
The type for libraries.
val v :
name:Name.t ->
requires:Name.t list ->
dir:B0_std.Fpath.t ->
cmis:B0_std.Fpath.t list ->
cmxs:B0_std.Fpath.t list ->
cma:B0_std.Fpath.t option ->
cmxa:B0_std.Fpath.t option ->
c_archive:B0_std.Fpath.t option ->
c_stubs:B0_std.Fpath.t list ->
js_stubs:B0_std.Fpath.t list ->
tv ~name ~cmis ~cmxs ~cma ~cmxa is a library named name which requires libraries requires, and library directory dir, has cmis cmi files, cmxs cmx files, cma bytecode archive, cmxa native code archive and it's companion c_archive as well as c_stubs archives. Theoretically all files should be in dir.
val of_dir :
B00.Memo.t ->
clib_ext:B0_std.Fpath.ext ->
name:Name.t ->
requires:Name.t list ->
dir:B0_std.Fpath.t ->
archive:string option ->
js_stubs:B0_std.Fpath.t list ->
(t, string) Stdlib.result B0_std.Fut.tof_dir m ~clib_ext ~name ~requires ~dir ~archive is a library named name which requires libraries requires, with library directory dir and library archive name archive (without extension and if any) and JavaScript stubs js_stubs. This looks up all files other files in dir and makes them ready in m. It also makes js_stubs files ready. clib_ext is the platform specific extension for C libraries.
Note. If dir doesn't follow the one library per directory convention this over-approximate cmis, cmxs and c_stubs files.
dir l is l's library directory.
cmis l is the list of cmis for the library.
cmxs l is the list of cmxs for the library.
cma l is the library's cma file (if any).
cmxa l is the library's cmxa file (if any).
c_archive l is the library's cmxa's companion C archive. Must exist if the cmxa exists and, since 4.12 if cmxa is not empty.
c_stubs l is the library's C stubs archives (if any).
js_stubs l is the library's JavaScript stubs (if any).