summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool/MSCommon/common.py
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2013-04-11 06:35:53 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2013-04-11 06:35:53 (GMT)
commit58f7387b4eaf8a206edd765160715f644e10d3ab (patch)
tree522cb936987cd4dd8bc953028b26ae8c6af4c18b /src/engine/SCons/Tool/MSCommon/common.py
parentea3cb031a0cdb496877bb22a65d2d5f6df6fdf14 (diff)
downloadSCons-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.py17
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.