aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2021-08-31 20:32:35 +0300
committerGitHub <noreply@github.com>2021-08-31 20:32:35 +0300
commit9e61b4fe99fad66c9dc7484ab62c34a75dec5b60 (patch)
treea7930ad46a3c165535e43e15f309513cc0e5dec2 /mesonbuild/build.py
parent82ba2f1e0532686dd7408ea782181b172a291316 (diff)
parent81f5cee2188dcbd6b92e6b570c2c98961588a17a (diff)
downloadmeson-9e61b4fe99fad66c9dc7484ab62c34a75dec5b60.zip
meson-9e61b4fe99fad66c9dc7484ab62c34a75dec5b60.tar.gz
meson-9e61b4fe99fad66c9dc7484ab62c34a75dec5b60.tar.bz2
Merge pull request #9185 from dcbaker/submit/env-object-as-holder
Make EnvironmentVariablesObject a holder
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 0143022..bc4065b 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -426,12 +426,16 @@ class ExtractedObjects(HoldableObject):
]
class EnvironmentVariables(HoldableObject):
- def __init__(self) -> None:
- self.envvars = []
+ def __init__(self, values: T.Optional[T.Dict[str, str]] = None) -> None:
+ self.envvars: T.List[T.Tuple[T.Callable[[T.Dict[str, str], str, T.List[str], str], str], str, T.List[str], str]] = []
# The set of all env vars we have operations for. Only used for self.has_name()
- self.varnames = set()
+ self.varnames: T.Set[str] = set()
- def __repr__(self):
+ if values:
+ for name, value in values.items():
+ self.set(name, [value])
+
+ def __repr__(self) -> str:
repr_str = "<{0}: {1}>"
return repr_str.format(self.__class__.__name__, self.envvars)
@@ -450,14 +454,17 @@ class EnvironmentVariables(HoldableObject):
self.varnames.add(name)
self.envvars.append((self._prepend, name, values, separator))
- def _set(self, env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str:
+ @staticmethod
+ def _set(env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str:
return separator.join(values)
- def _append(self, env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str:
+ @staticmethod
+ def _append(env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str:
curr = env.get(name)
return separator.join(values if curr is None else [curr] + values)
- def _prepend(self, env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str:
+ @staticmethod
+ def _prepend(env: T.Dict[str, str], name: str, values: T.List[str], separator: str) -> str:
curr = env.get(name)
return separator.join(values if curr is None else values + [curr])