summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/engine/SCons/Tool/msvc.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/engine/SCons/Tool/msvc.py b/src/engine/SCons/Tool/msvc.py
index 20b5d28..e1b0536 100644
--- a/src/engine/SCons/Tool/msvc.py
+++ b/src/engine/SCons/Tool/msvc.py
@@ -60,6 +60,21 @@ def validate_vars(env):
if not SCons.Util.is_String(env['PCHSTOP']):
raise SCons.Errors.UserError("The PCHSTOP construction variable must be a string: %r"%env['PCHSTOP'])
+def msvc_set_PCHPDBFLAGS(env):
+ """
+ Set appropriate PCHPDBFLAGS for the MSVC version being used.
+ """
+ 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:
+ # Default if we can't determine which version of MSVC we're using
+ env['PCHPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Yd") or ""}'])
+
+
def pch_emitter(target, source, env):
"""Adds the object file target."""
@@ -259,15 +274,7 @@ def generate(env):
env['CFILESUFFIX'] = '.c'
env['CXXFILESUFFIX'] = '.cc'
- 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:
- # Default if we can't determine which version of MSVC we're using
- env['PCHPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Yd") or ""}'])
+ msvc_set_PCHPDBFLAGS(env)
env['PCHCOM'] = '$CXX /Fo${TARGETS[1]} $CXXFLAGS $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS /c $SOURCES /Yc$PCHSTOP /Fp${TARGETS[0]} $CCPDBFLAGS $PCHPDBFLAGS'