Generate select rules explicitely in gen_rules

This commit is contained in:
Jeremie Dimino 2018-03-30 15:58:18 -04:00 committed by Rudi Grinberg
parent 75269117cd
commit 950a37b1ad
3 changed files with 7 additions and 3 deletions

View File

@ -610,6 +610,7 @@ module Gen(P : Install_rules.Params) = struct
Lib.DB.get_compile_info (Scope.libs scope) lib.name Lib.DB.get_compile_info (Scope.libs scope) lib.name
~allow_overlaps:lib.buildable.allow_overlapping_dependencies ~allow_overlaps:lib.buildable.allow_overlapping_dependencies
in in
SC.Libs.gen_select_rules sctx compile_info ~dir;
let requires = let requires =
SC.Libs.requires sctx compile_info SC.Libs.requires sctx compile_info
~dir ~has_dot_merlin:true ~dir ~has_dot_merlin:true
@ -881,6 +882,7 @@ module Gen(P : Install_rules.Params) = struct
~pps:(Jbuild.Preprocess_map.pps exes.buildable.preprocess) ~pps:(Jbuild.Preprocess_map.pps exes.buildable.preprocess)
~allow_overlaps:exes.buildable.allow_overlapping_dependencies ~allow_overlaps:exes.buildable.allow_overlapping_dependencies
in in
SC.Libs.gen_select_rules sctx compile_info ~dir;
let requires = let requires =
SC.Libs.requires sctx ~dir SC.Libs.requires sctx ~dir
~has_dot_merlin:true ~has_dot_merlin:true

View File

@ -255,8 +255,8 @@ let source_files t ~src_path =
module Libs = struct module Libs = struct
open Build.O open Build.O
let add_select_rules t ~dir resolved_selects = let gen_select_rules t ~dir compile_info =
List.iter resolved_selects ~f:(fun rs -> List.iter (Lib.Compile.resolved_selects compile_info) ~f:(fun rs ->
let { Lib.Compile.Resolved_select.dst_fn; src_fn } = rs in let { Lib.Compile.Resolved_select.dst_fn; src_fn } = rs in
let dst = Path.relative dir dst_fn in let dst = Path.relative dir dst_fn in
add_rule t add_rule t
@ -271,7 +271,6 @@ module Libs = struct
})) }))
let requires t ~dir ~has_dot_merlin compile_info = let requires t ~dir ~has_dot_merlin compile_info =
add_select_rules t ~dir (Lib.Compile.resolved_selects compile_info);
let requires = let requires =
Build.of_result_map (Lib.Compile.requires compile_info) Build.of_result_map (Lib.Compile.requires compile_info)
~f:Build.return ~f:Build.return

View File

@ -139,6 +139,9 @@ module Libs : sig
-> Lib.Compile.t -> Lib.Compile.t
-> (unit, Lib.L.t) Build.t -> (unit, Lib.L.t) Build.t
(** Generate the rules for the [(select ...)] forms in library dependencies *)
val gen_select_rules : t -> dir:Path.t -> Lib.Compile.t -> unit
(** [file_deps ~ext] is an arrow that record dependencies on all the (** [file_deps ~ext] is an arrow that record dependencies on all the
files with extension [ext] of the libraries given as input. *) files with extension [ext] of the libraries given as input. *)
val file_deps : t -> ext:string -> (Lib.t list, Lib.t list) Build.t val file_deps : t -> ext:string -> (Lib.t list, Lib.t list) Build.t