diff options
author | Steven Knight <knight@baldmt.com> | 2001-12-29 08:04:42 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2001-12-29 08:04:42 (GMT) |
commit | 9198503d21ac99352629e8d8dfb7c14b11f34401 (patch) | |
tree | f43d4904a396cb3a43f0832ff3a0c912e574e0d5 /src/engine/SCons/Script/SConscript.py | |
parent | c4285a0fcb42c8b8e84126ed5cb81ae745b98a8b (diff) | |
download | SCons-9198503d21ac99352629e8d8dfb7c14b11f34401.zip SCons-9198503d21ac99352629e8d8dfb7c14b11f34401.tar.gz SCons-9198503d21ac99352629e8d8dfb7c14b11f34401.tar.bz2 |
Add duplicate (defaults to true) option to BuildDir()
Diffstat (limited to 'src/engine/SCons/Script/SConscript.py')
-rw-r--r-- | src/engine/SCons/Script/SConscript.py | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py index 924fd29..7085547 100644 --- a/src/engine/SCons/Script/SConscript.py +++ b/src/engine/SCons/Script/SConscript.py @@ -89,22 +89,23 @@ def SConscript(script, exports=[]): # push: stack.append(Frame(exports)) - # call: - if script == "-": - exec sys.stdin in stack[-1].globals - else: - f = SCons.Node.FS.default_fs.File(script) - if f.exists(): - file = open(str(f), "r") - SCons.Node.FS.default_fs.chdir(f.dir) - exec file in stack[-1].globals + try: + # call: + if script == "-": + exec sys.stdin in stack[-1].globals else: - sys.stderr.write("Ignoring missing SConscript '%s'\n" % f.path) - - - # pop: - frame = stack.pop() - SCons.Node.FS.default_fs.chdir(frame.prev_dir) + if not isinstance(script, SCons.Node.Node): + script = SCons.Node.FS.default_fs.File(script) + if script.exists(): + file = open(str(script), "r") + SCons.Node.FS.default_fs.chdir(script.dir) + exec file in stack[-1].globals + else: + sys.stderr.write("Ignoring missing SConscript '%s'\n" % script.path) + finally: + # pop: + frame = stack.pop() + SCons.Node.FS.default_fs.chdir(frame.prev_dir) return frame.retval @@ -122,8 +123,8 @@ def Help(text): print "Use scons -H for help about command-line options." sys.exit(0) -def BuildDir(build_dir, src_dir): - SCons.Node.FS.default_fs.BuildDir(build_dir, src_dir) +def BuildDir(build_dir, src_dir, duplicate=1): + SCons.Node.FS.default_fs.BuildDir(build_dir, src_dir, duplicate) def GetBuildPath(files): nodes = SCons.Util.scons_str2nodes(files, @@ -173,4 +174,6 @@ def BuildDefaultGlobals(): globals['Export'] = Export globals['Import'] = Import globals['Return'] = Return + globals['Dir'] = SCons.Node.FS.default_fs.Dir + globals['File'] = SCons.Node.FS.default_fs.File return globals |