summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Defaults.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-05-19 17:49:55 (GMT)
committerSteven Knight <knight@baldmt.com>2004-05-19 17:49:55 (GMT)
commit04ebe107191659f805bd63148c61c1026efeb686 (patch)
tree9122729d1120c1119fe10ff360f4675789ca8f9b /src/engine/SCons/Defaults.py
parent12d2ae1193b9e32e0164218bb73240791914f976 (diff)
downloadSCons-04ebe107191659f805bd63148c61c1026efeb686.zip
SCons-04ebe107191659f805bd63148c61c1026efeb686.tar.gz
SCons-04ebe107191659f805bd63148c61c1026efeb686.tar.bz2
Fix spurious rebuilds/reinstalls of header files and circular dependencies with generated header files by allowing Scanners to be associated explicitly with Builders, not just through Scanner file suffix lists.
Diffstat (limited to 'src/engine/SCons/Defaults.py')
-rw-r--r--src/engine/SCons/Defaults.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py
index 7a47b21..4c42f28 100644
--- a/src/engine/SCons/Defaults.py
+++ b/src/engine/SCons/Defaults.py
@@ -96,6 +96,8 @@ def SharedFlagChecker(source, target, env):
SharedCheck = SCons.Action.Action(SharedFlagChecker, None)
# Scanners and suffixes for common languages.
+ObjSourceScan = SCons.Scanner.Scanner({})
+
CScan = SCons.Scanner.C.CScan()
CSuffixes = [".c", ".C", ".cxx", ".cpp", ".c++", ".cc",
@@ -103,14 +105,23 @@ CSuffixes = [".c", ".C", ".cxx", ".cpp", ".c++", ".cc",
".F", ".fpp", ".FPP",
".S", ".spp", ".SPP"]
+for suffix in CSuffixes:
+ ObjSourceScan.add_scanner(suffix, CScan)
+
DScan = SCons.Scanner.D.DScan()
DSuffixes = ['.d']
+for suffix in DSuffixes:
+ ObjSourceScan.add_scanner(suffix, DScan)
+
FortranScan = SCons.Scanner.Fortran.FortranScan()
FortranSuffixes = [".f", ".F", ".for", ".FOR"]
+for suffix in FortranSuffixes:
+ ObjSourceScan.add_scanner(suffix, FortranScan)
+
IDLSuffixes = [".idl", ".IDL"]
# Actions for common languages.
@@ -330,7 +341,7 @@ class NullCmdGenerator:
ConstructionEnvironment = {
'BUILDERS' : {},
- 'SCANNERS' : [CScan, FortranScan, DScan],
+ 'SCANNERS' : [],
'CPPSUFFIXES': CSuffixes,
'DSUFFIXES' : DSuffixes,
'FORTRANSUFFIXES': FortranSuffixes,