summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGary Oberbrunner <garyo@oberbrunner.com>2012-05-07 01:10:59 (GMT)
committerGary Oberbrunner <garyo@oberbrunner.com>2012-05-07 01:10:59 (GMT)
commitec379f834b6f972cbab13313c8b83d243173a22a (patch)
treebac0a265a5cc6e55afe142d9ee36583f7f420751 /src
parent5541811338b2905a554711673cc41b2fc6ee0a37 (diff)
downloadSCons-ec379f834b6f972cbab13313c8b83d243173a22a.zip
SCons-ec379f834b6f972cbab13313c8b83d243173a22a.tar.gz
SCons-ec379f834b6f972cbab13313c8b83d243173a22a.tar.bz2
MSVC11 needs PCH objects added to the link line.
Update msvc linker emitter to add the PCH object if not already present.
Diffstat (limited to 'src')
-rw-r--r--src/engine/SCons/Tool/mslink.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/engine/SCons/Tool/mslink.py b/src/engine/SCons/Tool/mslink.py
index 07af49e..35c9de6 100644
--- a/src/engine/SCons/Tool/mslink.py
+++ b/src/engine/SCons/Tool/mslink.py
@@ -159,6 +159,7 @@ def prog_emitter(target, source, env):
SCons.Tool.msvc.validate_vars(env)
extratargets = []
+ extrasources = []
exe = env.FindIxes(target, "PROGPREFIX", "PROGSUFFIX")
if not exe:
@@ -178,7 +179,15 @@ def prog_emitter(target, source, env):
extratargets.append(pdb)
target[0].attributes.pdb = pdb
- return (target+extratargets,source)
+ if version_num >= 11.0 and env.get('PCH', 0):
+ # MSVC 11 and above need the PCH object file to be added to the link line,
+ # otherwise you get link error LNK2011.
+ pchobj = SCons.Util.splitext(str(env['PCH']))[0] + '.obj'
+ # print "prog_emitter, version %s, appending pchobj %s"%(version_num, pchobj)
+ if pchobj not in extrasources:
+ extrasources.append(pchobj)
+
+ return (target+extratargets,source+extrasources)
def RegServerFunc(target, source, env):
if 'register' in env and env['register']: