summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-05-15 02:04:41 (GMT)
committerSteven Knight <knight@baldmt.com>2005-05-15 02:04:41 (GMT)
commitd692c3125cc9f5723f2a1380e61dc57b85f4a881 (patch)
tree1fbb4eb0084c99d0c8abba25d6cbbcbcec9d42e5 /src
parenta3bf620d551aea0cba3aa56a6c4cb33dc4de5f6a (diff)
downloadSCons-d692c3125cc9f5723f2a1380e61dc57b85f4a881.zip
SCons-d692c3125cc9f5723f2a1380e61dc57b85f4a881.tar.gz
SCons-d692c3125cc9f5723f2a1380e61dc57b85f4a881.tar.bz2
Get rid of the requirement that a source directory must be under the SConstruct directory.
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt3
-rw-r--r--src/engine/SCons/Node/FS.py2
-rw-r--r--src/engine/SCons/Node/FSTests.py11
3 files changed, 7 insertions, 9 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 5edaafb..f8f09fd 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -282,6 +282,9 @@ RELEASE 0.97 - XXX
- Fix AddPreAction() and AddPostAction() when an action has more than
one target file: attach the actions to the Executor, not the Node.
+ - Allow the source directory of a BuildDir / build_dir to be outside
+ of the top-level SConstruct directory tree.
+
From Wayne Lee:
- Avoid "maximum recursion limit" errors when removing $(-$) pairs
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 5ae14fc..9203e18 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -973,8 +973,6 @@ class FS(LocalFS):
src_dir = self.Dir(src_dir)
if not isinstance(build_dir, SCons.Node.Node):
build_dir = self.Dir(build_dir)
- if not src_dir.is_under(self.Top):
- raise SCons.Errors.UserError, "Source directory must be under top of build tree."
if src_dir.is_under(build_dir):
raise SCons.Errors.UserError, "Source directory cannot be under build directory."
if build_dir.srcdir:
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index 6978a03..1b31009 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -380,13 +380,10 @@ class BuildDirTestCase(unittest.TestCase):
assert (stat.S_IMODE(st[stat.ST_MODE]) & stat.S_IWRITE), \
stat.S_IMODE(st[stat.ST_MODE])
- exc_caught = 0
- try:
- fs = SCons.Node.FS.FS()
- fs.BuildDir('build', '/test/foo')
- except SCons.Errors.UserError:
- exc_caught = 1
- assert exc_caught, "Should have caught a UserError."
+ # This used to generate a UserError when we forbid the source
+ # directory from being outside the top-level SConstruct dir.
+ fs = SCons.Node.FS.FS()
+ fs.BuildDir('build', '/test/foo')
exc_caught = 0
try: