summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Defaults.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-06-05 23:35:56 (GMT)
committerSteven Knight <knight@baldmt.com>2002-06-05 23:35:56 (GMT)
commit2f7d4f660fd048edc342a989d25c94d7b52ab13e (patch)
tree20def5c6f0f7b68ab7151cac4ada5c470a3b31e0 /src/engine/SCons/Defaults.py
parent42717c855f7cbb73d3017ac243a34491d3cc0c53 (diff)
downloadSCons-2f7d4f660fd048edc342a989d25c94d7b52ab13e.zip
SCons-2f7d4f660fd048edc342a989d25c94d7b52ab13e.tar.gz
SCons-2f7d4f660fd048edc342a989d25c94d7b52ab13e.tar.bz2
Changes from Charles Crain.
Diffstat (limited to 'src/engine/SCons/Defaults.py')
-rw-r--r--src/engine/SCons/Defaults.py58
1 files changed, 32 insertions, 26 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py
index 2259f40..e8bf376 100644
--- a/src/engine/SCons/Defaults.py
+++ b/src/engine/SCons/Defaults.py
@@ -68,8 +68,9 @@ class SharedCmdGenerator:
def __call__(self, target, source, env, shared=0, **kw):
for src in source:
try:
- if src.attributes.shared != shared:
- raise SCons.Errors.UserError("Source file: %s must be built with shared=%s in order to be compatible with the selected target." % (src, str(shared)))
+ if (src.attributes.shared and not shared) or \
+ (shared and not src.attributes.shared):
+ raise SCons.Errors.UserError("Source file: %s must be built with shared=%s in order to be compatible with target: %s" % (src, str(shared), target[0]))
except AttributeError:
pass
for t in target:
@@ -90,15 +91,13 @@ def yaccEmitter(target, source, env, **kw):
'.h')
return (target, source)
-CFile = SCons.Builder.Builder(name = 'CFile',
- action = { '.l' : '$LEXCOM',
+CFile = SCons.Builder.Builder(action = { '.l' : '$LEXCOM',
'.y' : '$YACCCOM',
},
emitter = yaccEmitter,
suffix = '$CFILESUFFIX')
-CXXFile = SCons.Builder.Builder(name = 'CXXFile',
- action = { '.ll' : '$LEXCOM',
+CXXFile = SCons.Builder.Builder(action = { '.ll' : '$LEXCOM',
'.yy' : '$YACCCOM',
},
emitter = yaccEmitter,
@@ -156,9 +155,8 @@ static_obj = SCons.Builder.DictCmdGenerator({ ".C" : C_static,
".FOR" : F77Action,
".fpp" : F77PPAction,
".FPP" : F77PPAction })
-
-Object = SCons.Builder.Builder(name = 'Object',
- generator = \
+
+Object = SCons.Builder.Builder(generator = \
SharedCmdGenerator(static=SCons.Action.CommandGeneratorAction(static_obj),
shared=SCons.Action.CommandGeneratorAction(shared_obj)),
prefix = '$OBJPREFIX',
@@ -166,7 +164,7 @@ Object = SCons.Builder.Builder(name = 'Object',
src_suffix = static_obj.src_suffixes(),
src_builder = [CFile, CXXFile])
-def win32TempFileMunge(env, cmd_list, for_signature):
+def win32TempFileMunge(env, cmd_list, for_signature):
"""Given a list of command line arguments, see if it is too
long to pass to the win32 command line interpreter. If so,
create a temp file, then pass "@tempfile" as the sole argument
@@ -194,8 +192,7 @@ def win32LinkGenerator(env, target, source, for_signature, **kw):
args.extend(map(SCons.Util.to_String, source))
return win32TempFileMunge(env, args, for_signature)
-Program = SCons.Builder.Builder(name='Program',
- action='$LINKCOM',
+Program = SCons.Builder.Builder(action='$LINKCOM',
prefix='$PROGPREFIX',
suffix='$PROGSUFFIX',
src_suffix='$OBJSUFFIX',
@@ -266,8 +263,7 @@ def win32LibEmitter(target, source, env, shared=0,
env.subst("$LIBSUFFIX")))
return (target, source)
-Library = SCons.Builder.Builder(name = 'Library',
- generator = \
+Library = SCons.Builder.Builder(generator = \
SharedCmdGenerator(shared="$SHLINKCOM",
static="$ARCOM"),
emitter="$LIBEMITTER",
@@ -282,8 +278,7 @@ Library = SCons.Builder.Builder(name = 'Library',
LaTeXAction = SCons.Action.Action('$LATEXCOM')
-DVI = SCons.Builder.Builder(name = 'DVI',
- action = { '.tex' : '$TEXCOM',
+DVI = SCons.Builder.Builder(action = { '.tex' : '$TEXCOM',
'.ltx' : LaTeXAction,
'.latex' : LaTeXAction,
},
@@ -295,8 +290,7 @@ DVI = SCons.Builder.Builder(name = 'DVI',
PDFLaTeXAction = SCons.Action.Action('$PDFLATEXCOM')
-PDF = SCons.Builder.Builder(name = 'PDF',
- action = { '.dvi' : '$PDFCOM',
+PDF = SCons.Builder.Builder(action = { '.dvi' : '$PDFCOM',
'.tex' : '$PDFTEXCOM',
'.ltx' : PDFLaTeXAction,
'.latex' : PDFLaTeXAction,
@@ -304,8 +298,7 @@ PDF = SCons.Builder.Builder(name = 'PDF',
prefix = '$PDFPREFIX',
suffix = '$PDFSUFFIX')
-PostScript = SCons.Builder.Builder(name = 'PostScript',
- action = '$PSCOM',
+PostScript = SCons.Builder.Builder(action = '$PSCOM',
prefix = '$PSPREFIX',
suffix = '$PSSUFFIX',
src_suffix = '.dvi',
@@ -316,8 +309,7 @@ CScan = SCons.Scanner.C.CScan()
def alias_builder(env, target, source):
pass
-Alias = SCons.Builder.Builder(name = 'Alias',
- action = alias_builder,
+Alias = SCons.Builder.Builder(action = alias_builder,
target_factory = SCons.Node.Alias.default_ans.Alias,
source_factory = SCons.Node.FS.default_fs.Entry,
multi = 1)
@@ -481,8 +473,15 @@ def make_win32_env_from_paths(include, lib, path):
'PSCOM' : '$DVIPS $DVIPSFLAGS -o $TARGET $SOURCES',
'PSPREFIX' : '',
'PSSUFFIX' : '.ps',
- 'BUILDERS' : [Alias, CFile, CXXFile, DVI, Library, Object,
- PDF, PostScript, Program],
+ 'BUILDERS' : { 'Alias' : Alias,
+ 'CFile' : CFile,
+ 'CXXFile' : CXXFile,
+ 'DVI' : DVI,
+ 'Library' : Library,
+ 'Object' : Object,
+ 'PDF' : PDF,
+ 'PostScript' : PostScript,
+ 'Program' : Program },
'SCANNERS' : [CScan],
'LIBDIRPREFIX' : '/LIBPATH:',
'LIBDIRSUFFIX' : '',
@@ -583,8 +582,15 @@ if os.name == 'posix':
'PSCOM' : '$DVIPS $DVIPSFLAGS -o $TARGET $SOURCES',
'PSPREFIX' : '',
'PSSUFFIX' : '.ps',
- 'BUILDERS' : [Alias, CFile, CXXFile, DVI, Library, Object,
- PDF, PostScript, Program],
+ 'BUILDERS' : { 'Alias' : Alias,
+ 'CFile' : CFile,
+ 'CXXFile' : CXXFile,
+ 'DVI' : DVI,
+ 'Library' : Library,
+ 'Object' : Object,
+ 'PDF' : PDF,
+ 'PostScript' : PostScript,
+ 'Program' : Program },
'SCANNERS' : [CScan],
'LIBDIRPREFIX' : '-L',
'LIBDIRSUFFIX' : '',