diff --git a/bob/buildout/envwrapper.py b/bob/buildout/envwrapper.py index e21020ebbe2453022b69306f26d41e72f5eef4ae..4ceb9b601469c060cf89f016bdaeaffa0446aa8b 100644 --- a/bob/buildout/envwrapper.py +++ b/bob/buildout/envwrapper.py @@ -65,6 +65,14 @@ class EnvironmentWrapper(object): if value: self.environ[key] = value.strip(sep) + def __prepend_to_environ(key, value, sep=' '): + if self.environ.get(key): + if value: + self.environ[key] = value.strip(sep) + sep + self.environ[key] + else: + if value: + self.environ[key] = value.strip(sep) + # joins all paths, respecting potential environment variables set by the # user, with priority __remove_environ('BOB_PREFIX_PATH') @@ -92,11 +100,10 @@ class EnvironmentWrapper(object): __remove_environ(key) __append_to_environ(key, internal) __append_to_environ(key, saved) - __append_to_environ(key, os.environ.get(key)) + __prepend_to_environ(key, os.environ.get(key)) - # for these environment variables, values set on the environment come last - # so they can override, values set on the buildout recipe or our internal - # settings + # for these environment variables, values set on the environment come first + # so we can override with our debug flag if cflags is not None: _order_flags('CFLAGS', cflags) _order_flags('CXXFLAGS', cflags) diff --git a/bob/buildout/test_envwrapper.py b/bob/buildout/test_envwrapper.py index 15052e6abf62587f0783b05c997af59346d20555..993ac8f90937b38fbb73a2ff6d59102f56955969 100644 --- a/bob/buildout/test_envwrapper.py +++ b/bob/buildout/test_envwrapper.py @@ -227,7 +227,7 @@ def test_preserve_user(): nose.tools.eq_(len(os.environ) - len(before), 1) - assert os.environ['CFLAGS'].endswith('-BUILDOUT-TEST-STRING') + assert os.environ['CFLAGS'].startswith('-BUILDOUT-TEST-STRING') e.unset() for key in before: