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
~allow_overlaps:lib.buildable.allow_overlapping_dependencies
in
SC.Libs.gen_select_rules sctx compile_info ~dir;
let requires =
SC.Libs.requires sctx compile_info
~dir ~has_dot_merlin:true
@ -881,6 +882,7 @@ module Gen(P : Install_rules.Params) = struct
~pps:(Jbuild.Preprocess_map.pps exes.buildable.preprocess)
~allow_overlaps:exes.buildable.allow_overlapping_dependencies
in
SC.Libs.gen_select_rules sctx compile_info ~dir;
let requires =
SC.Libs.requires sctx ~dir
~has_dot_merlin:true

View File

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

View File

@ -139,6 +139,9 @@ module Libs : sig
-> Lib.Compile.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
files with extension [ext] of the libraries given as input. *)
val file_deps : t -> ext:string -> (Lib.t list, Lib.t list) Build.t