Fix ListBuilder so it works with --implicit-cache. (Anthony Roach)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 5 Jun 2002 12:52:42 +0000 (12:52 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 5 Jun 2002 12:52:42 +0000 (12:52 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@383 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Builder.py
test/option--implicit-cache.py

index bb68c93f41064013ee3be6825c73b5aa284e27f9..42c948443f604b11c6663fd68f54b9911e65bdb8 100644 (file)
@@ -342,10 +342,7 @@ class ListBuilder:
 
     def __init__(self, builder, env, tlist):
         self.builder = builder
-        self.scanner = builder.scanner
-        self.env = env
        self.tlist = tlist
-        self.multi = builder.multi
         self.name = "ListBuilder(%s)"%builder.name
 
     def execute(self, **kw):
@@ -362,15 +359,6 @@ class ListBuilder:
                 t.build()
         return self.status
 
-    def get_raw_contents(self, **kw):
-        return apply(self.builder.get_raw_contents, (), kw)
-
-    def get_contents(self, **kw):
-        return apply(self.builder.get_contents, (), kw)
-
-    def src_suffixes(self, env, args):
-        return self.builder.src_suffixes(env, args)
-
     def targets(self, node):
         """Return the list of targets for this builder instance.
         """
@@ -379,6 +367,9 @@ class ListBuilder:
     def __cmp__(self, other):
        return cmp(self.__dict__, other.__dict__)
 
+    def __getattr__(self, name):
+       return getattr(self.builder, name)
+
 class MultiStepBuilder(BuilderBase):
     """This is a builder subclass that can build targets in
     multiple steps.  The src_builder parameter to the constructor
index 704668b883e28cfa3fe46a57951a9f302b6460c6..6ebff3a55995d3fab71fbc017289cd56a6c3c019 100644 (file)
@@ -30,8 +30,10 @@ import TestSCons
 
 if sys.platform == 'win32':
     _exe = '.exe'
+    _obj = '.obj'
 else:
     _exe = ''
+    _obj = '.o'
 
 prog = 'prog' + _exe
 subdir_prog = os.path.join('subdir', 'prog' + _exe)
@@ -58,6 +60,8 @@ def copy(target, source, env):
     open(str(target[0]), 'wt').write(open(str(source[0]), 'rt').read())
 nodep = env.Command('nodeps.c', 'nodeps.in', action=copy)
 env.Program('nodeps', 'nodeps.c')
+
+env.Object(['one', 'two'], ['one.c'])
 """)
 
 test.write(['subdir', 'SConscript'],
@@ -120,7 +124,12 @@ r"""
 #define BAR_STRING "subdir/include/bar.h 1\n"
 """)
 
+test.write('one.c' ,
+r"""
+#include <foo.h>
 
+void one(void) { }
+""")
 
 test.run(arguments = "--implicit-cache " + args)
 
@@ -242,5 +251,19 @@ test.run(program = test.workpath(variant_prog),
 # test in the face of a file with no dependencies where the source file is generated:
 test.run(arguments = "--implicit-cache nodeps%s"%_exe)
 
+test.write('nodeps.in', 
+r"""
+#include <foo.h>
+
+int
+main(int argc, char *argv[])
+{
+    argv[argc++] = "--";
+    return 0;
+}
+""")
+
+test.run(arguments = "--implicit-cache one%s"%_obj)
+test.run(arguments = "--implicit-cache one%s"%_obj)
 
 test.pass_test()