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 67 68 69 70 71 72 73
|
(************************************************************************)
(* This file is licensed under The MIT License *)
(* See LICENSE for more information *)
(* (c) MINES ParisTech 2018-2019 *)
(* (c) INRIA 2020-2022 *)
(* Written by: Emilio Jesús Gallego Arias *)
(* Written by: Rudi Grinberg *)
(************************************************************************)
module Theory : sig
(** A theory binding; directories should be relative to Coq's
sources root *)
type t =
{ directory : Path.t
(** Directory of the theory *)
; dirname: string list
(** Coq's logical path *)
; implicit : bool
(** Use -R or -Q *)
}
end
(** theory kind *)
module Boot_type : sig
type t =
Stdlib
(** Standard library *)
| NoInit
(** Standalone library (without Coq's stdlib, for example the prelude) *)
| Regular of Theory.t
(** Regular library, qualified with -Q, path controls where the
Coq stdlib is *)
end
module Context : sig
type t
(** *)
val make :
root_lvl:int
-> theory:Theory.t
-> user_flags:Arg.t list
-> boot:Boot_type.t
-> rule:Coq_module.Rule_type.t (* quick, native, etc... *)
-> async:bool
-> dir_info:Coq_module.t Dir_info.t (* contents of the directory scan *)
-> split:bool (* whether we are building coq-core + coq-stdlib or only coq-stdlib *)
-> t
end
(** [gen_vo_rules root_lvl rule flags tname boot] Builds dune rules
for the *current* directory, assuming that we will do [-R
. tname]. The parameter [boot] controls the kind of the current
theory. [root_lvl] tells the rule generator how many levels up the
root Coq sources are. [flags] add extra flags to coqc, such as
`-async on` *)
val vo_rules :
dir_info :Coq_module.t Dir_info.t
-> cctx:Context.t
-> Dune_file.Rule.t list Dune_file.Subdir.t list
val coqnative_rules :
dir_info :Coq_module.t Dir_info.t
-> cctx:Context.t
-> Dune_file.Rule.t list Dune_file.Subdir.t list
val install_rules :
dir_info :Coq_module.t Dir_info.t
-> cctx:Context.t
-> Dune_file.Install.t list Dune_file.Subdir.t list
|