summaryrefslogtreecommitdiffstats
path: root/src/script
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-10-29 05:33:03 (GMT)
committerSteven Knight <knight@baldmt.com>2001-10-29 05:33:03 (GMT)
commit15928490b955a3d4ea4966102dc915ed0fdb8526 (patch)
tree4b7b65dd605a53881ad0ee1977cea88db9f31885 /src/script
parent3bce8a9e6e70d61723e4824bd7ba84a7b9547456 (diff)
downloadSCons-15928490b955a3d4ea4966102dc915ed0fdb8526.zip
SCons-15928490b955a3d4ea4966102dc915ed0fdb8526.tar.gz
SCons-15928490b955a3d4ea4966102dc915ed0fdb8526.tar.bz2
Handle SConscript files in subdirectories.
Diffstat (limited to 'src/script')
-rw-r--r--src/script/scons.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/script/scons.py b/src/script/scons.py
index d6c7698..49a8467 100644
--- a/src/script/scons.py
+++ b/src/script/scons.py
@@ -147,9 +147,9 @@ def _scons_other_errors():
-def Conscript(filename):
+def SConscript(filename):
global scripts
- scripts.append(filename)
+ scripts.append(SCons.Node.FS.default_fs.File(filename))
def Default(*targets):
for t in targets:
@@ -361,7 +361,10 @@ def options_init():
def opt_f(opt, arg):
global scripts
- scripts.append(arg)
+ if arg == '-':
+ scripts.append(arg)
+ else:
+ scripts.append(SCons.Node.FS.default_fs.File(arg))
Option(func = opt_f,
short = 'f', long = ['file', 'makefile', 'sconstruct'], arg = 'FILE',
@@ -581,7 +584,7 @@ def main():
if not scripts:
for file in ['SConstruct', 'Sconstruct', 'sconstruct']:
if os.path.isfile(file):
- scripts.append(file)
+ scripts.append(SCons.Node.FS.default_fs.File(file))
break
if help_option == 'H':
@@ -616,16 +619,18 @@ def main():
sys.path = include_dirs + sys.path
while scripts:
- file, scripts = scripts[0], scripts[1:]
- if file == "-":
+ f, scripts = scripts[0], scripts[1:]
+ if f == "-":
exec sys.stdin in globals()
else:
try:
- f = open(file, "r")
+ file = open(f.path, "r")
except IOError, s:
- sys.stderr.write("Ignoring missing script '%s'\n" % file)
+ sys.stderr.write("Ignoring missing SConscript '%s'\n" % f.path)
else:
- exec f in globals()
+ SCons.Node.FS.default_fs.chdir(f.dir)
+ exec file in globals()
+ SCons.Node.FS.default_fs.chdir(SCons.Node.FS.default_fs.Top)
if help_option == 'h':
# They specified -h, but there was no Help() inside the