From d938777da7f4b9e908075dabb1554bef9882d60f Mon Sep 17 00:00:00 2001 From: William Deegan Date: Sun, 27 Nov 2016 14:26:58 -0800 Subject: fix PCHPDBFLAGS changes to not crash if version of MSVC is unknown, and default to old value --- src/engine/SCons/Tool/MSCommon/vc.py | 11 ++++++----- 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 -- cgit v0.12