scons: Whitelist useful environment variables
authorAndreas Sandberg <Andreas.Sandberg@ARM.com>
Mon, 7 Jan 2013 18:05:39 +0000 (13:05 -0500)
committerAndreas Sandberg <Andreas.Sandberg@ARM.com>
Mon, 7 Jan 2013 18:05:39 +0000 (13:05 -0500)
Scons normally removes all environment variables that aren't
whitelisted from the build environment. This messes up things like
ccache, distcc, and the clang static analyzer. This changeset adds the
DISTCC_, CCACHE_, and CCC_ prefixes to the environment variable
whitelist.

SConstruct

index a51acb15961d69ac847b8981fc94b0c07ecc88bd..22b63f02f9911f9ba42a647777bbf844c924b827 100755 (executable)
@@ -183,9 +183,17 @@ use_vars = set([ 'AS', 'AR', 'CC', 'CXX', 'HOME', 'LD_LIBRARY_PATH',
                  'LIBRARY_PATH', 'PATH', 'PKG_CONFIG_PATH', 'PYTHONPATH',
                  'RANLIB', 'SWIG' ])
 
+use_prefixes = [
+    "M5",           # M5 configuration (e.g., path to kernels)
+    "DISTCC_",      # distcc (distributed compiler wrapper) configuration
+    "CCACHE_",      # ccache (caching compiler wrapper) configuration
+    "CCC_",         # clang static analyzer configuration
+    ]
+
 use_env = {}
 for key,val in os.environ.iteritems():
-    if key in use_vars or key.startswith("M5"):
+    if key in use_vars or \
+            any([key.startswith(prefix) for prefix in use_prefixes]):
         use_env[key] = val
 
 main = Environment(ENV=use_env)