summaryrefslogtreecommitdiff
path: root/third_party/waf/waflib/extras/md5_tstamp.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/waf/waflib/extras/md5_tstamp.py')
-rw-r--r--third_party/waf/waflib/extras/md5_tstamp.py67
1 files changed, 0 insertions, 67 deletions
diff --git a/third_party/waf/waflib/extras/md5_tstamp.py b/third_party/waf/waflib/extras/md5_tstamp.py
deleted file mode 100644
index 63b71d8d27a..00000000000
--- a/third_party/waf/waflib/extras/md5_tstamp.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#! /usr/bin/env python
-# encoding: utf-8
-
-"""
-This module assumes that only one build context is running at a given time, which
-is not the case if you want to execute configuration tests in parallel.
-
-Store some values on the buildcontext mapping file paths to
-stat values and md5 values (timestamp + md5)
-this way the md5 hashes are computed only when timestamp change (can be faster)
-There is usually little or no gain from enabling this, but it can be used to enable
-the second level cache with timestamps (WAFCACHE)
-
-You may have to run distclean or to remove the build directory before enabling/disabling
-this hashing scheme
-"""
-
-import os, stat
-from waflib import Utils, Build, Context
-
-STRONGEST = True
-
-try:
- Build.BuildContext.store_real
-except AttributeError:
-
- Context.DBFILE += '_md5tstamp'
-
- Build.hashes_md5_tstamp = {}
- Build.SAVED_ATTRS.append('hashes_md5_tstamp')
- def store(self):
- # save the hash cache as part of the default pickle file
- self.hashes_md5_tstamp = Build.hashes_md5_tstamp
- self.store_real()
- Build.BuildContext.store_real = Build.BuildContext.store
- Build.BuildContext.store = store
-
- def restore(self):
- # we need a module variable for h_file below
- self.restore_real()
- try:
- Build.hashes_md5_tstamp = self.hashes_md5_tstamp or {}
- except AttributeError:
- Build.hashes_md5_tstamp = {}
- Build.BuildContext.restore_real = Build.BuildContext.restore
- Build.BuildContext.restore = restore
-
- def h_file(filename):
- st = os.stat(filename)
- if stat.S_ISDIR(st[stat.ST_MODE]): raise IOError('not a file')
-
- if filename in Build.hashes_md5_tstamp:
- if Build.hashes_md5_tstamp[filename][0] == str(st.st_mtime):
- return Build.hashes_md5_tstamp[filename][1]
- if STRONGEST:
- ret = Utils.h_file_no_md5(filename)
- Build.hashes_md5_tstamp[filename] = (str(st.st_mtime), ret)
- return ret
- else:
- m = Utils.md5()
- m.update(str(st.st_mtime))
- m.update(str(st.st_size))
- m.update(filename)
- Build.hashes_md5_tstamp[filename] = (str(st.st_mtime), m.digest())
- return m.digest()
- Utils.h_file_no_md5 = Utils.h_file
- Utils.h_file = h_file