diff options
| author | Steven Knight <knight@baldmt.com> | 2003-07-29 05:48:42 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2003-07-29 05:48:42 (GMT) |
| commit | cdd0eab5e0c816de539b72d681f43d33001cf595 (patch) | |
| tree | 82e8fabbf5f6c0483b33751c659066fdfcd728db /src/engine/SCons/Defaults.py | |
| parent | 784bfda1c79778638356ae85b3ff748c55aed544 (diff) | |
| download | SCons-cdd0eab5e0c816de539b72d681f43d33001cf595.zip SCons-cdd0eab5e0c816de539b72d681f43d33001cf595.tar.gz SCons-cdd0eab5e0c816de539b72d681f43d33001cf595.tar.bz2 | |
Allow Builders to take a dictionary that maps source file suffixes to emitter functions. Refactor initialization of a number of builders out of the SCons.Defaults.py module.
Diffstat (limited to 'src/engine/SCons/Defaults.py')
| -rw-r--r-- | src/engine/SCons/Defaults.py | 74 |
1 files changed, 1 insertions, 73 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py index 2cef6fa..4d7933b 100644 --- a/src/engine/SCons/Defaults.py +++ b/src/engine/SCons/Defaults.py @@ -78,34 +78,6 @@ CScan = SCons.Scanner.C.CScan() FortranScan = SCons.Scanner.Fortran.FortranScan() -def yaccEmitter(target, source, env, **kw): - # If -d is specified on the command line, yacc will emit a .h - # or .hpp file as well as a .c or .cpp file, depending on whether - # the input file is a .y or .yy, respectively. - if len(source) and '-d' in string.split(env.subst("$YACCFLAGS")): - suff = os.path.splitext(SCons.Util.to_String(source[0]))[1] - h = None - if suff == '.y': - h = '.h' - elif suff == '.yy': - h = '.hpp' - if h: - base = os.path.splitext(SCons.Util.to_String(target[0]))[0] - target.append(base + h) - return (target, source) - -def CFile(): - """Common function to generate a C file Builder.""" - return SCons.Builder.Builder(action = {}, - emitter = yaccEmitter, - suffix = '$CFILESUFFIX') - -def CXXFile(): - """Common function to generate a C++ file Builder.""" - return SCons.Builder.Builder(action = {}, - emitter = yaccEmitter, - suffix = '$CXXFILESUFFIX') - class SharedFlagChecker: """This is a callable class that is used as a build action for all objects, libraries, and programs. @@ -150,40 +122,8 @@ ShF77PPAction = SCons.Action.Action([ SharedCheckSet, "$SHF77PPCOM" ]) ASAction = SCons.Action.Action([ StaticCheckSet, "$ASCOM" ]) ASPPAction = SCons.Action.Action([ StaticCheckSet, "$ASPPCOM" ]) - -def StaticObject(): - """A function for generating the static object Builder.""" - return SCons.Builder.Builder(action = {}, - emitter="$OBJEMITTER", - prefix = '$OBJPREFIX', - suffix = '$OBJSUFFIX', - src_builder = ['CFile', 'CXXFile']) - -def SharedObject(): - """A function for generating the shared object Builder.""" - return SCons.Builder.Builder(action = {}, - prefix = '$SHOBJPREFIX', - suffix = '$SHOBJSUFFIX', - emitter="$OBJEMITTER", - src_builder = ['CFile', 'CXXFile']) - ProgScan = SCons.Scanner.Prog.ProgScan() -StaticLibrary = SCons.Builder.Builder(action=[ StaticCheck, "$ARCOM" ], - emitter='$LIBEMITTER', - prefix = '$LIBPREFIX', - suffix = '$LIBSUFFIX', - src_suffix = '$OBJSUFFIX', - src_builder = 'Object') - -SharedLibrary = SCons.Builder.Builder(action=[ SharedCheck, "$SHLINKCOM" ], - emitter="$SHLIBEMITTER", - prefix = '$SHLIBPREFIX', - suffix = '$SHLIBSUFFIX', - scanner = ProgScan, - src_suffix = '$SHOBJSUFFIX', - src_builder = 'SharedObject') - def DVI(): """Common function to generate a DVI file Builder.""" return SCons.Builder.Builder(action = {}, @@ -199,14 +139,6 @@ def PDF(): prefix = '$PDFPREFIX', suffix = '$PDFSUFFIX') -Program = SCons.Builder.Builder(action=[ StaticCheck, '$LINKCOM' ], - emitter='$PROGEMITTER', - prefix='$PROGPREFIX', - suffix='$PROGSUFFIX', - src_suffix='$OBJSUFFIX', - src_builder='Object', - scanner = ProgScan) - def copyFunc(dest, source, env): """Install a source file into a destination by copying it (and its permission/mode bits).""" @@ -297,11 +229,7 @@ class NullCmdGenerator: return self.cmd ConstructionEnvironment = { - 'BUILDERS' : { 'SharedLibrary' : SharedLibrary, - 'Library' : StaticLibrary, - 'StaticLibrary' : StaticLibrary, - 'Alias' : Alias, - 'Program' : Program }, + 'BUILDERS' : { 'Alias' : Alias }, 'SCANNERS' : [CScan, FortranScan], 'PDFPREFIX' : '', 'PDFSUFFIX' : '.pdf', |
