summaryrefslogtreecommitdiff
path: root/waflib/Tools/md5_tstamp.py
diff options
context:
space:
mode:
Diffstat (limited to 'waflib/Tools/md5_tstamp.py')
-rw-r--r--waflib/Tools/md5_tstamp.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/waflib/Tools/md5_tstamp.py b/waflib/Tools/md5_tstamp.py
new file mode 100644
index 0000000..0d0faa0
--- /dev/null
+++ b/waflib/Tools/md5_tstamp.py
@@ -0,0 +1,24 @@
+#! /usr/bin/env python
+# encoding: utf-8
+# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,stat
+from waflib import Utils,Build,Node
+STRONGEST=True
+Build.SAVED_ATTRS.append('hashes_md5_tstamp')
+def h_file(self):
+ filename=self.abspath()
+ st=os.stat(filename)
+ cache=self.ctx.hashes_md5_tstamp
+ if filename in cache and cache[filename][0]==st.st_mtime:
+ return cache[filename][1]
+ if STRONGEST:
+ ret=Utils.h_file(filename)
+ else:
+ if stat.S_ISDIR(st[stat.ST_MODE]):
+ raise IOError('Not a file')
+ ret=Utils.md5(str((st.st_mtime,st.st_size)).encode()).digest()
+ cache[filename]=(st.st_mtime,ret)
+ return ret
+h_file.__doc__=Node.Node.h_file.__doc__
+Node.Node.h_file=h_file