summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Pouillard <np@nicolaspouillard.fr>2007-12-18 09:03:39 +0000
committerNicolas Pouillard <np@nicolaspouillard.fr>2007-12-18 09:03:39 +0000
commitabd0efef67fffa21dd24d7f32b9c0272f4dc39b8 (patch)
tree088631de6cc2e8e784e19b8f4c77311c89578e9d
parent249889d1ff397cdf0f0e88b814a4e30abdc4b080 (diff)
ocamlbuild: digest any resource.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8723 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--ocamlbuild/resource.ml12
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