summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-07-02 16:06:39 (GMT)
committerSteven Knight <knight@baldmt.com>2003-07-02 16:06:39 (GMT)
commit6da1c503b48c363638df57e101b7d49316b09025 (patch)
tree9e7d346be67ee64995a10e51d6e607a27ba76bc4 /src/engine
parent4494c32726f5560df070bd13696272e88babcb3c (diff)
downloadSCons-6da1c503b48c363638df57e101b7d49316b09025.zip
SCons-6da1c503b48c363638df57e101b7d49316b09025.tar.gz
SCons-6da1c503b48c363638df57e101b7d49316b09025.tar.bz2
Make builder prefixes work correctly when deducing a target name from a source file in another directory. Fix a man page bug. Document the yacc -d *.yy fix previously checked in.
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Builder.py7
-rw-r--r--src/engine/SCons/BuilderTests.py7
2 files changed, 10 insertions, 4 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 6caf5d9..f19983d 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -311,8 +311,11 @@ class BuilderBase:
if target is None:
s = source[0]
if isinstance(s, SCons.Node.Node):
- s = os.path.split(str(s))[1]
- target = [ pre + os.path.splitext(s)[0] + suf ]
+ s = str(s)
+ dir, s = os.path.split(s)
+ target = pre + os.path.splitext(s)[0] + suf
+ if dir:
+ target = [ os.path.join(dir, target) ]
else:
target = adjustixes(target, pre, suf)
diff --git a/src/engine/SCons/BuilderTests.py b/src/engine/SCons/BuilderTests.py
index b856b08..062f8b9 100644
--- a/src/engine/SCons/BuilderTests.py
+++ b/src/engine/SCons/BuilderTests.py
@@ -303,8 +303,11 @@ class BuilderTestCase(unittest.TestCase):
tgt = builder(env, source = 'src3')
assert tgt.path == 'libsrc3', \
"Target has unexpected name: %s" % tgt.path
- tgt = builder(env, target = 'lib/tgt4', source = 'lib/src4')
- assert tgt.path == os.path.join('lib', 'libtgt4'), \
+ tgt = builder(env, source = 'lib/src4')
+ assert tgt.path == os.path.join('lib', 'libsrc4'), \
+ "Target has unexpected name: %s" % tgt.path
+ tgt = builder(env, target = 'lib/tgt5', source = 'lib/src5')
+ assert tgt.path == os.path.join('lib', 'libtgt5'), \
"Target has unexpected name: %s" % tgt.path
def test_src_suffix(self):