Management of include directories.
This module offers a high level interface to locating files in the load path, which is constructed from -I
and -H
command line flags and a few other parameters.
It makes the assumption that the contents of include directories doesn't change during the execution of the compiler.
Add a directory to the end of the load path (i.e. at lowest priority.)
module Dir : sig ... end
type auto_include_callback =
(Dir.t -> string -> string option) ->
string ->
string
The type of callback functions on for init ~auto_include
val no_auto_include : auto_include_callback
No automatic directory inclusion: misses in the load path raise Not_found
as normal.
val init :
auto_include:auto_include_callback ->
visible:string list ->
hidden:string list ->
unit
init ~visible ~hidden
is the same as reset (); List.iter add_dir (List.rev hidden); List.iter add_dir (List.rev visible)
val auto_include_otherlibs : (string -> unit) -> auto_include_callback
auto_include_otherlibs alert
is a callback function to be passed to Load_path.init
and automatically adds -I +lib
to the load path after calling alert lib
.
val get_paths : unit -> paths
Return the directories passed to add_dir
so far.
Locate a file in the load path. Raise Not_found
if the file cannot be found. This function is optimized for the case where the filename is a basename, i.e. doesn't contain a directory separator.
Same as find
, but search also for normalized unit name (see Misc.normalized_unit_filename
), i.e. if name is Foo.ml
, allow /path/Foo.ml
and /path/foo.ml
to match.
val find_normalized_with_visibility : string -> string * visibility
Same as find_normalized
, but also reports whether the cmi was found in a -I directory (Visible) or a -H directory (Hidden)
val add : Dir.t -> unit
Old name for append_dir
val append_dir : Dir.t -> unit
append_dir d
adds d
to the end of the load path (i.e. at lowest priority.
val prepend_dir : Dir.t -> unit
prepend_dir d
adds d
to the start of the load path (i.e. at highest priority.
val get_visible : unit -> Dir.t list
Same as get_paths ()
, except that it returns a Dir.t list
, and doesn't include the -H paths.