Make builder prefixes work correctly when deducing a target name from a source file...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 2 Jul 2003 16:06:39 +0000 (16:06 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 2 Jul 2003 16:06:39 +0000 (16:06 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@732 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/man/scons.1
src/CHANGES.txt
src/engine/SCons/Builder.py
src/engine/SCons/BuilderTests.py

index cdfc7d802fb80d5122c9a8ebb3aad20b87e9fdd7..7c93e0e39339a496993a6bc970d2bde92d31295e 100644 (file)
@@ -3315,6 +3315,11 @@ to generate a source file.
 
 .IP YACCFLAGS
 General options passed to the parser generator.
+If $YACCFLAGS contains a \-d option,
+SCons assumes that the call will also create a .h file
+(if the yacc source file ends in a .y suffix)
+or a .hpp file
+(if the yacc source file ends in a .yy suffix)
 
 .IP ZIP
 The zip compression and file packaging utility.
@@ -5549,7 +5554,7 @@ to the BUILDERS construction variable, such as:
 
 .ES
 env = Environment()
-env.['BUILDERS]['PDFBuilder'] = bld
+env['BUILDERS]['PDFBuilder'] = bld
 .EE
 
 .SS Defining Your Own Scanner Object
index 03bd9dea07da0c59d0241fde2223ea4bb4eac60b..bd8c5da36a15d009d3d4e39e70eb7b5da64dc332 100644 (file)
@@ -17,6 +17,11 @@ RELEASE 0.XX - XXX
   - When the input yacc file ends in .yy and the -d flag is specified,
     recognize that a .hpp file (not a .h file) will be created.
 
+  - Make builder prefixes work correctly when deducing a target
+    from a source file name in another directory.
+
+  - Documentation fixes:  typo in the man page.
+
 
 
 RELEASE 0.90 - Wed, 25 Jun 2003 14:24:52 -0500
index 6caf5d9aa47b3ee094ab807ffcaaa0eff07ecb02..f19983d37a2ecb03314532b8c08f611feb277a32 100644 (file)
@@ -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)
 
index b856b08cbd4aa96c09dbfda24dc8f88811ed02b7..062f8b9d918bbcb9ab72d44aebde066d30faa09f 100644 (file)
@@ -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):