summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2016-11-27 22:26:58 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2016-11-27 22:26:58 (GMT)
commitd938777da7f4b9e908075dabb1554bef9882d60f (patch)
tree339f407bce3be6c0ef54f1a4fff8f13595cb685b
parente3d5fdee7267b8e07873f77afe4f2ecc46f82f16 (diff)
downloadSCons-d938777da7f4b9e908075dabb1554bef9882d60f.zip
SCons-d938777da7f4b9e908075dabb1554bef9882d60f.tar.gz
SCons-d938777da7f4b9e908075dabb1554bef9882d60f.tar.bz2
fix PCHPDBFLAGS changes to not crash if version of MSVC is unknown, and default to old value
-rw-r--r--src/engine/SCons/Tool/MSCommon/vc.py11
-rw-r--r--src/engine/SCons/Tool/msvc.py13
2 files changed, 15 insertions, 9 deletions
diff --git a/src/engine/SCons/Tool/MSCommon/vc.py b/src/engine/SCons/Tool/MSCommon/vc.py
index baa4025..588fe98 100644
--- a/src/engine/SCons/Tool/MSCommon/vc.py
+++ b/src/engine/SCons/Tool/MSCommon/vc.py
@@ -185,16 +185,17 @@ _VCVER_TO_PRODUCT_DIR = {
}
def msvc_version_to_maj_min(msvc_version):
- msvc_version_numeric = ''.join([x for x in msvc_version if x in string_digits + '.'])
+
+ msvc_version_numeric = ''.join([x for x in msvc_version if x in string_digits + '.'])
- t = msvc_version_numeric.split(".")
- if not len(t) == 2:
+ t = msvc_version_numeric.split(".")
+ if not len(t) == 2:
raise ValueError("Unrecognized version %s (%s)" % (msvc_version,msvc_version_numeric))
- try:
+ try:
maj = int(t[0])
min = int(t[1])
return maj, min
- except ValueError as e:
+ except ValueError as e:
raise ValueError("Unrecognized version %s (%s)" % (msvc_version,msvc_version_numeric))
def is_host_target_supported(host_target, msvc_version):
diff --git a/src/engine/SCons/Tool/msvc.py b/src/engine/SCons/Tool/msvc.py
index 4a6feca..20b5d28 100644
--- a/src/engine/SCons/Tool/msvc.py
+++ b/src/engine/SCons/Tool/msvc.py
@@ -259,11 +259,16 @@ def generate(env):
env['CFILESUFFIX'] = '.c'
env['CXXFILESUFFIX'] = '.cc'
- maj, min = msvc_version_to_maj_min(env['MSVC_VERSION'])
- if maj < 8:
- env['PCHPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Yd") or ""}'])
+ if env.get('MSVC_VERSION',False):
+ maj, min = msvc_version_to_maj_min(env['MSVC_VERSION'])
+ if maj < 8:
+ env['PCHPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Yd") or ""}'])
+ else:
+ env['PCHPDBFLAGS'] = ''
else:
- env['PCHPDBFLAGS'] = ''
+ # Default if we can't determine which version of MSVC we're using
+ env['PCHPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Yd") or ""}'])
+
env['PCHCOM'] = '$CXX /Fo${TARGETS[1]} $CXXFLAGS $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS /c $SOURCES /Yc$PCHSTOP /Fp${TARGETS[0]} $CCPDBFLAGS $PCHPDBFLAGS'
env['BUILDERS']['PCH'] = pch_builder