aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2021-10-29 18:25:22 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2021-10-29 18:25:22 +0300
commit0340dfaa54d84518c15d01e1544bae4c29715c4e (patch)
treec9b577311228e3df9beb6e64cde481976077b68c /mesonbuild/build.py
parent37ea997ca4e74360bfa31748c0e3b408b85591e3 (diff)
downloadmeson-deterministichash.zip
meson-deterministichash.tar.gz
meson-deterministichash.tar.bz2
Make environment objects hash deterministically.deterministichash
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index e2251ea..97acdef 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -468,6 +468,15 @@ class EnvironmentVariables(HoldableObject):
repr_str = "<{0}: {1}>"
return repr_str.format(self.__class__.__name__, self.envvars)
+ def hash(self, hasher: T.Any):
+ myenv = self.get_env({})
+ keys = sorted(myenv.keys())
+ for key in keys:
+ hasher.update(bytes(key, encoding='utf-8'))
+ hasher.update(b',')
+ hasher.update(bytes(myenv[key], encoding='utf-8'))
+ hasher.update(b';')
+
def has_name(self, name: str) -> bool:
return name in self.varnames