summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-04-16 12:30:36 (GMT)
committerSteven Knight <knight@baldmt.com>2002-04-16 12:30:36 (GMT)
commit42ed072377b5d6d3735abb0b3d0f61e7941879c7 (patch)
tree5f2005485f08072f7065bd24259461c1d87bf186 /src
parent0331e6f13472a35aedb7e61db4ab8219e464bed2 (diff)
downloadSCons-42ed072377b5d6d3735abb0b3d0f61e7941879c7.zip
SCons-42ed072377b5d6d3735abb0b3d0f61e7941879c7.tar.gz
SCons-42ed072377b5d6d3735abb0b3d0f61e7941879c7.tar.bz2
Fix importing of modules from the SConscript directory (Anthony Roach)
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt3
-rw-r--r--src/engine/SCons/Script/SConscript.py10
2 files changed, 12 insertions, 1 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index b14aa57..019b8e7 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -100,6 +100,9 @@ RELEASE 0.07 -
- Change the -U option to -D. Make a new -U that builds just the
targets from the local SConscript file.
+ - Fixed use of sys.path so Python modules can be imported from
+ the SConscript directory.
+
RELEASE 0.06 - Thu, 28 Mar 2002 01:24:29 -0600
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index eb1a13e..f30652d 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -39,6 +39,7 @@ import SCons.Node.FS
import SCons.Util
import os
+import os.path
import string
import sys
@@ -105,8 +106,8 @@ def SConscript(script, exports=[]):
# push:
stack.append(Frame(exports))
-
old_dir = None
+ old_sys_path = sys.path
try:
# call:
if script == "-":
@@ -120,11 +121,18 @@ def SConscript(script, exports=[]):
if sconscript_chdir:
old_dir = os.getcwd()
os.chdir(str(script.dir))
+
+ # prepend the SConscript directory to sys.path so
+ # that Python modules in the SConscript directory can
+ # be easily imported.
+ sys.path = [os.path.abspath(str(script.dir))] + sys.path
+
exec file in stack[-1].globals
else:
sys.stderr.write("Ignoring missing SConscript '%s'\n" % script.path)
finally:
# pop:
+ sys.path = old_sys_path
frame = stack.pop()
SCons.Node.FS.default_fs.chdir(frame.prev_dir)
if old_dir: