From cfb8b6eb9bfcacdffc606bf720cdc7422e0a0adc Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Wed, 26 Apr 2017 12:05:25 +0200 Subject: [PATCH] Force debug flag from buildout (closes #17) --- bob/buildout/envwrapper.py | 15 +++++++++++---- bob/buildout/test_envwrapper.py | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/bob/buildout/envwrapper.py b/bob/buildout/envwrapper.py index e21020e..4ceb9b6 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 15052e6..993ac8f 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: -- GitLab