diff options
author | William Deegan <bill@baddogconsulting.com> | 2016-11-27 22:26:58 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2016-11-27 22:26:58 (GMT) |
commit | d938777da7f4b9e908075dabb1554bef9882d60f (patch) | |
tree | 339f407bce3be6c0ef54f1a4fff8f13595cb685b | |
parent | e3d5fdee7267b8e07873f77afe4f2ecc46f82f16 (diff) | |
download | SCons-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.py | 11 | ||||
-rw-r--r-- | src/engine/SCons/Tool/msvc.py | 13 |
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 |