Move expand_and_eval_set to Super_context

This commit is contained in:
Jeremie Dimino 2017-04-28 15:01:19 +01:00
parent 5f270372bf
commit a8c2dcc928
3 changed files with 29 additions and 26 deletions

View File

@ -16,28 +16,6 @@ module Gen(P : Params) = struct
let ctx = SC.context sctx
(* +-----------------------------------------------------------------+
| Ordered set lang evaluation |
+-----------------------------------------------------------------+ *)
let expand_and_eval_set ~dir set ~standard =
match Ordered_set_lang.Unexpanded.files set |> String_set.elements with
| [] ->
let set = Ordered_set_lang.Unexpanded.expand set ~files_contents:String_map.empty in
Build.return (Ordered_set_lang.eval_with_standard set ~standard)
| files ->
let paths = List.map files ~f:(Path.relative dir) in
Build.paths paths
>>>
Build.arr (fun () ->
let files_contents =
List.map2 files paths ~f:(fun fn path ->
(fn, Sexp_load.single (Path.to_string path)))
|> String_map.of_alist_exn
in
let set = Ordered_set_lang.Unexpanded.expand set ~files_contents in
Ordered_set_lang.eval_with_standard set ~standard)
(* +-----------------------------------------------------------------+
| ml/mli compilation |
+-----------------------------------------------------------------+ *)
@ -200,7 +178,7 @@ module Gen(P : Params) = struct
~modules
~mode
(String_map.keys modules)))
(expand_and_eval_set ~dir lib.c_library_flags ~standard:[])
(SC.expand_and_eval_set ~dir lib.c_library_flags ~standard:[])
>>>
Build.run ~context:ctx (Dep compiler)
~extra_targets:(
@ -239,7 +217,7 @@ module Gen(P : Params) = struct
(Build.paths h_files
>>>
Build.fanout
(expand_and_eval_set ~dir lib.c_flags ~standard:(Utils.g ()))
(SC.expand_and_eval_set ~dir lib.c_flags ~standard:(Utils.g ()))
(requires
>>>
Build.dyn_paths (Build.arr Lib.header_files))
@ -267,7 +245,7 @@ module Gen(P : Params) = struct
(Build.paths h_files
>>>
Build.fanout
(expand_and_eval_set ~dir lib.cxx_flags ~standard:(Utils.g ()))
(SC.expand_and_eval_set ~dir lib.cxx_flags ~standard:(Utils.g ()))
requires
>>>
Build.run ~context:ctx
@ -415,7 +393,7 @@ module Gen(P : Params) = struct
| None ->
let ocamlmklib ~sandbox ~custom ~targets =
SC.add_rule sctx ~sandbox
(expand_and_eval_set ~dir lib.c_library_flags ~standard:[]
(SC.expand_and_eval_set ~dir lib.c_library_flags ~standard:[]
>>>
Build.run ~context:ctx
~extra_targets:targets

View File

@ -667,3 +667,22 @@ module PP = struct
)
)
end
let expand_and_eval_set ~dir set ~standard =
let open Build.O in
match Ordered_set_lang.Unexpanded.files set |> String_set.elements with
| [] ->
let set = Ordered_set_lang.Unexpanded.expand set ~files_contents:String_map.empty in
Build.return (Ordered_set_lang.eval_with_standard set ~standard)
| files ->
let paths = List.map files ~f:(Path.relative dir) in
Build.paths paths
>>>
Build.arr (fun () ->
let files_contents =
List.map2 files paths ~f:(fun fn path ->
(fn, Sexp_load.single (Path.to_string path)))
|> String_map.of_alist_exn
in
let set = Ordered_set_lang.Unexpanded.expand set ~files_contents in
Ordered_set_lang.eval_with_standard set ~standard)

View File

@ -127,3 +127,9 @@ module PP : sig
[None] *)
val cookie_library_name : string option -> string list
end
val expand_and_eval_set
: dir:Path.t
-> Ordered_set_lang.Unexpanded.t
-> standard:string list
-> (unit, string list) Build.t