Generate select rules explicitely in gen_rules
This commit is contained in:
parent
75269117cd
commit
950a37b1ad
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue