summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/CHANGES.txt3
-rw-r--r--src/engine/SCons/Defaults.py15
2 files changed, 12 insertions, 6 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 2d29028..8717bcf 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -42,6 +42,9 @@ RELEASE 0.03 -
- Put the Action factory and classes into their own module.
+ - Use one CPlusPlusAction in the Object Builder's action dictionary,
+ instead of letting it create multiple identical instances.
+
From Anthony Roach:
- Add a "duplicate" keyword argument to BuildDir() that can be set
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py
index 2e11c37..5b98595 100644
--- a/src/engine/SCons/Defaults.py
+++ b/src/engine/SCons/Defaults.py
@@ -37,6 +37,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import os
+import SCons.Action
import SCons.Builder
import SCons.Scanner.C
import SCons.Scanner.Prog
@@ -49,14 +50,16 @@ CFile = SCons.Builder.Builder(name = 'CFile',
},
suffix = '.c')
+CPlusPlusAction = SCons.Action.Action('$CXXCOM')
+
Object = SCons.Builder.Builder(name = 'Object',
action = { '.c' : '$CCCOM',
- '.C' : '$CXXCOM',
- '.cc' : '$CXXCOM',
- '.cpp' : '$CXXCOM',
- '.cxx' : '$CXXCOM',
- '.c++' : '$CXXCOM',
- '.C++' : '$CXXCOM',
+ '.C' : CPlusPlusAction,
+ '.cc' : CPlusPlusAction,
+ '.cpp' : CPlusPlusAction,
+ '.cxx' : CPlusPlusAction,
+ '.c++' : CPlusPlusAction,
+ '.C++' : CPlusPlusAction,
},
prefix = '$OBJPREFIX',
suffix = '$OBJSUFFIX',