Add the $CCFLAGS variable to the $PCHCOM command line, and rearrange
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 9 Feb 2009 21:11:28 +0000 (21:11 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 9 Feb 2009 21:11:28 +0000 (21:11 +0000)
the arguments so the /Fo is towards the beginning of the line
(like it is for $CCCOM, $CXXCOM, etc.).

git-svn-id: http://scons.tigris.org/svn/scons/trunk@3990 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/RELEASE.txt
src/engine/SCons/Tool/msvc.py
test/MSVC/msvc.py

index 519821903e86a0d0f434cda4df445043c01f0282..19e7cc4f9d89f234ae142ace7b8a6c2b94af36f1 100644 (file)
@@ -25,6 +25,8 @@ RELEASE X.X.X - XXX
     - Fix finding #include files when the string contains escaped
       backslashes like "C:\\some\\include.h".
 
+    - Pass $CCFLAGS to Visual C/C++ precompiled header compilation.
+
   From Robert P. J. Day:
 
     - User's Guide updates.
index 3bcf998931fc25e55efa5cbc719070d6893f5679..31aaec4ebce99580a00c2226dfc2bb330733d168 100644 (file)
@@ -56,6 +56,19 @@ RELEASE 1.2.0.d20090113 - Tue, 13 Jan 2009 02:50:30 -0800
         will no longer work at all, and will instead generate specific
         fatal errors when anyone tries to use them.
 
+  Please note the following important changes since release 1.2.0:
+
+    --  VISUAL C/C++ PRECOMPILED HEADERS WILL BE REBUILT
+
+        Precompiled header files built with Visual C/C++ will be
+        rebuilt after upgrading from 1.2.0.
+
+        This rebuild is normal will occur because the command line
+        defined by the $PCHCOM construction variable has had the
+        $CCFLAGS variable added, and has been rearranged to put the
+        "/Fo" output flag towards the beginning of the line, consistent
+        with the related command lines for $CCCOM, $CXXCOM, etc.
+
   Please note the following important changes since release 1.1.0:
 
     --  THE $CHANGED_SOURCES, $CHANGED_TARGETS, $UNCHANGED_SOURCES
index 19ebd9f1ee83e20e79e57d97cac8b048372dc877..443e8b0225eec1a8201d1b7add13bd130e369236 100644 (file)
@@ -812,7 +812,7 @@ def generate(env):
     env['CXXFILESUFFIX'] = '.cc'
 
     env['PCHPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Yd") or ""}'])
-    env['PCHCOM'] = '$CXX $CXXFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS /c $SOURCES /Fo${TARGETS[1]} /Yc$PCHSTOP /Fp${TARGETS[0]} $CCPDBFLAGS $PCHPDBFLAGS'
+    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
 
     if not env.has_key('ENV'):
index 4ad562c5d34f7b300a3d1a91312c5f1b405f522f..21e88d0f3af4c98a1363ca42b159c1147ca09b4a 100644 (file)
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+"""
+Verify basic invocation of Microsoft Visual C/C++, including use
+of a precompiled header with the $CCFLAGS variable.
+"""
+
 import os
 import sys
 import time
@@ -43,7 +48,8 @@ test.write('SConstruct',"""
 import os
 env = Environment()
 env.Append(CPPPATH=os.environ.get('INCLUDE', ''),
-           LIBPATH=os.environ.get('LIB', ''))
+           LIBPATH=os.environ.get('LIB', ''),
+           CCFLAGS='/DPCHDEF')
 env['PDB'] = File('test.pdb')
 env['PCHSTOP'] = 'StdAfx.h'
 env['PCH'] = env.PCH('StdAfx.cpp')[0]
@@ -92,6 +98,9 @@ test.write('StdAfx.h', '''
 
 test.write('StdAfx.cpp', '''
 #include "StdAfx.h"
+#ifndef PCHDEF
+this line generates an error if PCHDEF is not defined!
+#endif
 ''')
 
 #  Visual Studio 8 has deprecated the /Yd option and prints warnings