47 lines
1.6 KiB
OCaml
47 lines
1.6 KiB
OCaml
(** High-level API for compiling OCaml files *)
|
|
|
|
open Import
|
|
|
|
(** Represent a compilation context.
|
|
|
|
A compilation context contains all the necessary information to
|
|
preprocess and compile OCaml source files. Exactly one compilation
|
|
context is associated to each library, executable and executbales
|
|
stanza.
|
|
*)
|
|
type t
|
|
|
|
(** Create a compilation context. *)
|
|
val create
|
|
: super_context : Super_context.t
|
|
-> scope : Scope.t
|
|
-> dir : Path.t
|
|
-> ?dir_kind : File_tree.Dune_file.Kind.t
|
|
-> ?obj_dir : Path.t
|
|
-> modules : Module.t Module.Name.Map.t
|
|
-> ?alias_module : Module.t
|
|
-> ?lib_interface_module : Module.t
|
|
-> flags : Ocaml_flags.t
|
|
-> requires : Lib.t list Or_exn.t
|
|
-> ?preprocessing : Preprocessing.t
|
|
-> ?no_keep_locs : bool
|
|
-> unit
|
|
-> t
|
|
|
|
(** Return a compilation context suitable for compiling the alias module. *)
|
|
val for_alias_module : t -> t
|
|
|
|
val super_context : t -> Super_context.t
|
|
val scope : t -> Scope.t
|
|
val dir : t -> Path.t
|
|
val dir_kind : t -> File_tree.Dune_file.Kind.t
|
|
val obj_dir : t -> Path.t
|
|
val modules : t -> Module.t Module.Name.Map.t
|
|
val alias_module : t -> Module.t option
|
|
val lib_interface_module : t -> Module.t option
|
|
val flags : t -> Ocaml_flags.t
|
|
val requires : t -> Lib.t list Or_exn.t
|
|
val includes : t -> string list Arg_spec.t Cm_kind.Dict.t
|
|
val preprocessing : t -> Preprocessing.t
|
|
val no_keep_locs : t -> bool
|