Restore scanning of .pch files. (Anthony Roach)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 19 Aug 2004 20:13:57 +0000 (20:13 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 19 Aug 2004 20:13:57 +0000 (20:13 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1043 fdb21ef1-2011-0410-befe-b5e4ea1792b1

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

index 57a85fbed08332407ba3f9f5d80251b47fc88c23..48016c448a84c29839388aaf8494c8333f8db10e 100644 (file)
@@ -10,7 +10,7 @@
 
 RELEASE 0.97 - XXX
 
-  From Steven Knight
+  From Steven Knight:
 
   - Add a must_exist flag to Delete() to let the user control whether
     it's an error if the specified entry doesn't exist.  The default
@@ -20,6 +20,11 @@ RELEASE 0.97 - XXX
 
   - Make the scons.bat REM statements into @REM so they aren't printed.
 
+  From Anthony Roach:
+
+  - Fix scanning of pre-compiled header (.pch) files for #includes,
+    broken in 0.96.
+
 
 
 RELEASE 0.96 - Wed, 18 Aug 2004 13:36:40 +0000
index ae67fdccc927b6d7499624a3558e63230f02d126..d81f64da51a00562c6ee078b9b0d4029f00d7272 100644 (file)
@@ -397,7 +397,8 @@ def shared_object_emitter(target, source, env):
     return object_emitter(target, source, env,
                           SCons.Defaults.SharedObjectEmitter)
 
-pch_builder = SCons.Builder.Builder(action='$PCHCOM', suffix='.pch', emitter=pch_emitter)
+pch_builder = SCons.Builder.Builder(action='$PCHCOM', suffix='.pch', emitter=pch_emitter,
+                                    source_scanner=SCons.Defaults.ObjSourceScan)
 res_builder = SCons.Builder.Builder(action='$RCCOM', suffix='.res',
                                     source_scanner=SCons.Defaults.ObjSourceScan)
 SCons.Defaults.ObjSourceScan.add_scanner('.rc', SCons.Defaults.CScan)
index 9f5171a54c6273e4cc6a00a45a8b49eacb1d30b9..fe5bfee95fd727f9fb45deccad3fdcc2c691901e 100644 (file)
@@ -84,6 +84,7 @@ test.write('foo.cpp', '''
 test.write('StdAfx.h', '''
 #include <windows.h>
 #include <stdio.h>
+#include "resource.h"
 ''')
 
 test.write('StdAfx.cpp', '''
@@ -167,6 +168,16 @@ slow = time.time() - start
 # using precompiled headers should be significantly faster
 assert fast < slow*0.8
 
+# Modifying resource.h should cause both the resource and precompiled header to be rebuilt:
+test.write('resource.h', '''
+#define IDS_TEST 2003
+''')
+
+test.not_up_to_date(arguments='test.res')
+test.not_up_to_date(arguments='StdAfx.pch')
+test.not_up_to_date(arguments='test.exe')
+test.run(program=test.workpath('test.exe'), stdout='2003 test 2\n')
+
 
 ##########
 # Test a hierarchical build