scons: Whitelist useful environment variables
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.
This commit is contained in:
parent
694a81e994
commit
4c06be60fc
1 changed files with 9 additions and 1 deletions
10
SConstruct
10
SConstruct
|
@ -183,9 +183,17 @@ use_vars = set([ 'AS', 'AR', 'CC', 'CXX', 'HOME', 'LD_LIBRARY_PATH',
|
||||||
'LIBRARY_PATH', 'PATH', 'PKG_CONFIG_PATH', 'PYTHONPATH',
|
'LIBRARY_PATH', 'PATH', 'PKG_CONFIG_PATH', 'PYTHONPATH',
|
||||||
'RANLIB', 'SWIG' ])
|
'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 = {}
|
use_env = {}
|
||||||
for key,val in os.environ.iteritems():
|
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
|
use_env[key] = val
|
||||||
|
|
||||||
main = Environment(ENV=use_env)
|
main = Environment(ENV=use_env)
|
||||||
|
|
Loading…
Reference in a new issue