diff options
author | William Deegan <bill@baddogconsulting.com> | 2013-04-11 06:35:53 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2013-04-11 06:35:53 (GMT) |
commit | 58f7387b4eaf8a206edd765160715f644e10d3ab (patch) | |
tree | 522cb936987cd4dd8bc953028b26ae8c6af4c18b /src/engine/SCons/Tool/MSCommon/common.py | |
parent | ea3cb031a0cdb496877bb22a65d2d5f6df6fdf14 (diff) | |
download | SCons-58f7387b4eaf8a206edd765160715f644e10d3ab.zip SCons-58f7387b4eaf8a206edd765160715f644e10d3ab.tar.gz SCons-58f7387b4eaf8a206edd765160715f644e10d3ab.tar.bz2 |
should resolve issues with VS2012 (and probably VS2010) on 64(and probably 32)bit win. Addressing at least bugs 2883 and 2817
Diffstat (limited to 'src/engine/SCons/Tool/MSCommon/common.py')
-rw-r--r-- | src/engine/SCons/Tool/MSCommon/common.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/engine/SCons/Tool/MSCommon/common.py b/src/engine/SCons/Tool/MSCommon/common.py index 4f8ee8c..3d220ae 100644 --- a/src/engine/SCons/Tool/MSCommon/common.py +++ b/src/engine/SCons/Tool/MSCommon/common.py @@ -120,6 +120,13 @@ def normalize_env(env, keys, force=False): if k in os.environ and (force or not k in normenv): normenv[k] = os.environ[k].encode('mbcs') + sys32_dir = os.path.join(os.environ.get("SystemRoot", os.environ.get("windir",r"C:\Windows\system32")),"System32") + + if sys32_dir not in normenv['PATH']: + normenv['PATH'] = normenv['PATH'] + os.pathsep + sys32_dir + + debug("PATH: %s"%normenv['PATH']) + return normenv def get_output(vcbat, args = None, env = None): @@ -136,8 +143,9 @@ def get_output(vcbat, args = None, env = None): # settings in vs.py. vars = [ 'COMSPEC', - 'VS110COMNTOOLS', - 'VS100COMNTOOLS', +# Still set, but setup script will discard these if registry has values. +# 'VS110COMNTOOLS', +# 'VS100COMNTOOLS', 'VS90COMNTOOLS', 'VS80COMNTOOLS', 'VS71COMNTOOLS', @@ -166,6 +174,11 @@ def get_output(vcbat, args = None, env = None): # and won't work under Pythons not built with threading. stdout = popen.stdout.read() stderr = popen.stderr.read() + + # Extra debug logic, uncomment if necessar +# debug('get_output():stdout:%s'%stdout) +# debug('get_output():stderr:%s'%stderr) + if stderr: # TODO: find something better to do with stderr; # this at least prevents errors from getting swallowed. |