summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Script/SConscript.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-12-29 08:04:42 (GMT)
committerSteven Knight <knight@baldmt.com>2001-12-29 08:04:42 (GMT)
commit9198503d21ac99352629e8d8dfb7c14b11f34401 (patch)
treef43d4904a396cb3a43f0832ff3a0c912e574e0d5 /src/engine/SCons/Script/SConscript.py
parentc4285a0fcb42c8b8e84126ed5cb81ae745b98a8b (diff)
downloadSCons-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.py37
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