aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorThibault Saunier <saunierthibault@gmail.com>2016-09-14 17:11:27 -0300
committerJussi Pakkanen <jpakkane@gmail.com>2016-09-14 23:11:27 +0300
commita2e7ebc575a47bfb3dfb774591cde3fdc6873dc9 (patch)
treebde1198cb0fde59c2ca09b78ff7a832a38aad238 /mesonbuild/build.py
parent8fd8c16a879742a840b8f3a431539a261b8552ba (diff)
downloadmeson-a2e7ebc575a47bfb3dfb774591cde3fdc6873dc9.zip
meson-a2e7ebc575a47bfb3dfb774591cde3fdc6873dc9.tar.gz
meson-a2e7ebc575a47bfb3dfb774591cde3fdc6873dc9.tar.bz2
Add a new 'environment' object to be used to build test environment (#781)
Allowing user to fine tune tests environment variables
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index f95922e..7605b46 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -193,6 +193,41 @@ class ExtractedObjects():
self.target = target
self.srclist = srclist
+class EnvironmentVariables():
+ def __init__(self):
+ self.envvars = []
+
+ def get_value(self, name, values, kwargs):
+ separator = kwargs.get('separator', os.pathsep)
+
+ value = ''
+ for var in values:
+ value += separator + var
+ return separator, value.strip(separator)
+
+ def set(self, env, name, values, kwargs):
+ return self.get_value(name, values, kwargs)[1]
+
+ def append(self, env, name, values, kwargs):
+ sep, value = self.get_value(name, values, kwargs)
+ if name in env:
+ return env[name] + sep + value
+ return value
+
+ def prepend(self, env, name, values, kwargs):
+ sep, value = self.get_value(name, values, kwargs)
+ if name in env:
+ return value + sep + env[name]
+
+ return value
+
+ def get_env(self, full_env):
+ env = {}
+ for method, name, values, kwargs in self.envvars:
+ env[name] = method(full_env, name, values, kwargs)
+ return env
+
+
class BuildTarget():
def __init__(self, name, subdir, subproject, is_cross, sources, objects, environment, kwargs):
self.name = name