From 950a37b1ad0b37d801601814f83dd98a3cc7b1c8 Mon Sep 17 00:00:00 2001 From: Jeremie Dimino Date: Fri, 30 Mar 2018 15:58:18 -0400 Subject: [PATCH] Generate select rules explicitely in gen_rules --- src/gen_rules.ml | 2 ++ src/super_context.ml | 5 ++--- src/super_context.mli | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gen_rules.ml b/src/gen_rules.ml index d90d26c8..b47e4119 100644 --- a/src/gen_rules.ml +++ b/src/gen_rules.ml @@ -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 diff --git a/src/super_context.ml b/src/super_context.ml index 752dae76..8f43e473 100644 --- a/src/super_context.ml +++ b/src/super_context.ml @@ -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 diff --git a/src/super_context.mli b/src/super_context.mli index 5430a667..66da0091 100644 --- a/src/super_context.mli +++ b/src/super_context.mli @@ -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