diff options
-rw-r--r-- | ocamlbuild/resource.ml | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ocamlbuild/resource.ml b/ocamlbuild/resource.ml index 408ccdf44..b4477c17e 100644 --- a/ocamlbuild/resource.ml +++ b/ocamlbuild/resource.ml @@ -151,7 +151,17 @@ module Cache = struct is_up_to_date || (Digest_cache.put key digest; false) let source_is_up_to_date r_in_source_dir r_in_build_dir = - Pathname.exists r_in_build_dir && Digest.file r_in_build_dir = Digest.file r_in_source_dir + let key = "Resource: " ^ r_in_source_dir in + let digest = Digest.file r_in_source_dir in + let r_is_up_to_date = + Pathname.exists r_in_build_dir && + try + let digest' = Digest_cache.get key in + digest = digest' + with Not_found -> + false + in + r_is_up_to_date || (Digest_cache.put key digest; false) let prod_is_up_to_date p = let x = in_build_dir p in |