forked from ocaml/ocaml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathload_path.mli
66 lines (50 loc) · 2.52 KB
/
load_path.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Jeremie Dimino, Jane Street Europe *)
(* *)
(* Copyright 2018 Jane Street Group LLC *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(** Management of include directories.
This module offers a high level interface to locating files in the
load path, which is constructed from [-I] 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.
*)
val add_dir : string -> unit
(** Add a directory to the load path *)
val remove_dir : string -> unit
(** Remove a directory from the load path *)
val reset : unit -> unit
(** Remove all directories *)
val init : string list -> unit
(** [init l] is the same as [reset (); List.iter add_dir (List.rev l)] *)
val get_paths : unit -> string list
(** Return the list of directories passed to [add_dir] so far. *)
val find : string -> string
(** 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. *)
val find_uncap : string -> string
(** Same as [find], but search also for uncapitalized name, i.e. if
name is Foo.ml, allow /path/Foo.ml and /path/foo.ml to match. *)
module Dir : sig
type t
(** Represent one directory in the load path. *)
val create : string -> t
val path : t -> string
val files : t -> string list
(** All the files in that directory. This doesn't include files in
sub-directories of this directory. *)
end
val add : Dir.t -> unit
val get : unit -> Dir.t list
(** Same as [get_paths ()], except that it returns a [Dir.t list]. *)