B00_ocaml.Lib
Library information and lookup.
An OCaml library is a directory with interfaces and object files. OCaml libraries are resolved by name using a Resolver
.
module Name : sig ... end
Library names.
val v : name:Name.t -> requires:Name.t list -> dir:B00_std.Fpath.t -> cmis:B00_std.Fpath.t list -> cmxs:B00_std.Fpath.t list -> cma:B00_std.Fpath.t option ->
cmxa:B00_std.Fpath.t option -> c_archive:B00_std.Fpath.t option -> c_stubs:B00_std.Fpath.t list -> t
v ~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:B00_std.Fpath.ext -> name:Name.t -> requires:Name.t list -> dir:B00_std.Fpath.t -> archive:string option ->
(t, string) result B00_std.Fut.t
of_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). This looks up all files other files in dir
and makes them ready in m
. 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.
val dir : t -> B00_std.Fpath.t
dir l
is l
's library directory.
val cmis : t -> B00_std.Fpath.t list
cmis l
is the list of cmis for the library.
val cmxs : t -> B00_std.Fpath.t list
cmxs l
is the list of cmxs for the library.
val cma : t -> B00_std.Fpath.t option
cma l
is the library's cma file (if any).
val cmxa : t -> B00_std.Fpath.t option
cmxa l
is the library's cmxa file (if any).
val c_archive : t -> B00_std.Fpath.t option
c_archive l
is the library's cmxa
's companion C archive. Must exist if the cmxa
exists.
val c_stubs : t -> B00_std.Fpath.t list
c_stubs l
is the library's C stubs archives (if any).
module Resolver : sig ... end
Library resolvers.