diff options
| author | Steven Knight <knight@baldmt.com> | 2002-04-11 18:24:32 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2002-04-11 18:24:32 (GMT) |
| commit | 0bf9bbc298b57b985bb84f8c60bbc70eca71bbaa (patch) | |
| tree | 10a6357ff5391b94c429748a5cac121562551307 /src/engine/SCons/Script/SConscript.py | |
| parent | e7578889702d1be9231592a0b2a39050f3702c51 (diff) | |
| download | SCons-0bf9bbc298b57b985bb84f8c60bbc70eca71bbaa.zip SCons-0bf9bbc298b57b985bb84f8c60bbc70eca71bbaa.tar.gz SCons-0bf9bbc298b57b985bb84f8c60bbc70eca71bbaa.tar.bz2 | |
Change to SConscript directory when reading it. (Steve Leblanc)
Diffstat (limited to 'src/engine/SCons/Script/SConscript.py')
| -rw-r--r-- | src/engine/SCons/Script/SConscript.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py index 5552015..eb1a13e 100644 --- a/src/engine/SCons/Script/SConscript.py +++ b/src/engine/SCons/Script/SConscript.py @@ -38,6 +38,7 @@ import SCons.Node import SCons.Node.FS import SCons.Util +import os import string import sys @@ -48,6 +49,13 @@ arguments = {} # global exports set by Export(): global_exports = {} +# chdir flag +sconscript_chdir = 0 + +def SConscriptChdir(flag): + global sconscript_chdir + sconscript_chdir = flag + def _scons_add_args(alist): global arguments for arg in alist: @@ -98,6 +106,7 @@ def SConscript(script, exports=[]): # push: stack.append(Frame(exports)) + old_dir = None try: # call: if script == "-": @@ -108,6 +117,9 @@ def SConscript(script, exports=[]): if script.exists(): file = open(str(script), "r") SCons.Node.FS.default_fs.chdir(script.dir) + if sconscript_chdir: + old_dir = os.getcwd() + os.chdir(str(script.dir)) exec file in stack[-1].globals else: sys.stderr.write("Ignoring missing SConscript '%s'\n" % script.path) @@ -115,6 +127,8 @@ def SConscript(script, exports=[]): # pop: frame = stack.pop() SCons.Node.FS.default_fs.chdir(frame.prev_dir) + if old_dir: + os.chdir(old_dir) return frame.retval @@ -188,6 +202,7 @@ def BuildDefaultGlobals(): globals['Return'] = Return globals['Scanner'] = SCons.Scanner.Base globals['SConscript'] = SConscript + globals['SConscriptChdir'] = SConscriptChdir globals['SetCommandHandler'] = SCons.Action.SetCommandHandler globals['WhereIs'] = SCons.Util.WhereIs return globals |
