Merged revisions 1667-1674 via svnmerge from
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 4 Nov 2006 05:31:24 +0000 (05:31 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 4 Nov 2006 05:31:24 +0000 (05:31 +0000)
http://scons.tigris.org/svn/scons/branches/core

........
  r1672 | stevenknight | 2006-11-03 23:11:52 -0600 (Fri, 03 Nov 2006) | 1 line

  0.96.D480 - Don't use UNIX logic to detect an executable qmtest.py on Windows.
........
  r1673 | stevenknight | 2006-11-03 23:18:59 -0600 (Fri, 03 Nov 2006) | 1 line

  0.96.D481 - Remove the print statement from the previous checkin.
........
  r1674 | stevenknight | 2006-11-03 23:25:43 -0600 (Fri, 03 Nov 2006) | 1 line

  0.96.D482 - Create a env.Clone() method and encourage its use in favor of env.Copy().
........

git-svn-id: http://scons.tigris.org/svn/scons/trunk@1675 fdb21ef1-2011-0410-befe-b5e4ea1792b1

67 files changed:
SConstruct
doc/SConscript
doc/man/scons.1
doc/user/environments.in
doc/user/environments.sgml
doc/user/hierarchy.in
doc/user/hierarchy.sgml
runtest.py
src/CHANGES.txt
src/RELEASE.txt
src/engine/SCons/ActionTests.py
src/engine/SCons/Environment.py
src/engine/SCons/EnvironmentTests.py
src/engine/SCons/SConfTests.py
src/engine/SCons/Subst.py
test/AS/AS.py
test/Actions/pre-post.py
test/BuildDir/BuildDir.py
test/BuildDir/CPPPATH-subdir.py
test/BuildDir/nested-sconscripts.py
test/CC/SHCCFLAGS.py
test/CFILESUFFIX.py
test/CPPDEFINES.py
test/CXX/CXXFILESUFFIX.py
test/CXX/SHCXXFLAGS.py
test/Clone-compatibility.py [new file with mode: 0644]
test/Copy-Option.py
test/DirSource.py
test/Fortran/F77.py
test/Fortran/F77FLAGS.py
test/Fortran/F90.py
test/Fortran/F90FLAGS.py
test/Fortran/F95.py
test/Fortran/F95FLAGS.py
test/Fortran/FORTRAN.py
test/Fortran/FORTRANFLAGS.py
test/Fortran/SHF77.py
test/Fortran/SHF77FLAGS.py
test/Fortran/SHF90.py
test/Fortran/SHF90FLAGS.py
test/Fortran/SHF95.py
test/Fortran/SHF95FLAGS.py
test/Fortran/SHFORTRAN.py
test/Fortran/SHFORTRANFLAGS.py
test/HeaderGen.py
test/IDL/midl.py
test/Install/Install.py
test/Java/JAR.py
test/Java/JAVAC.py
test/Java/JAVAH.py
test/Java/RMIC.py
test/NodeOps.py
test/QT/copied-env.py
test/QT/empty-env.py
test/QT/reentrant.py
test/SWIG/SWIG.py
test/Scanner/Scanner.py
test/Scanner/generated.py
test/SourceSignatures.py
test/TEX/LATEXFLAGS.py
test/TEX/PDFLATEXFLAGS.py
test/TargetSignatures.py
test/multi.py
test/option--warn.py
test/sconsign/script.py
test/srcchange.py
test/toolpath.py

index 0fdacd527ca54bea245d8d7754f721962f8d7fd3..41708d695a899b8e10c0405c279227c44fd9dbe2 100644 (file)
@@ -809,7 +809,7 @@ for p in [ scons ]:
 
         rpm_files.sort()
         rpm_files_str = string.join(rpm_files, "\n") + "\n"
-        rpm_spec_env = env.Copy(RPM_FILES = rpm_files_str)
+        rpm_spec_env = env.Clone(RPM_FILES = rpm_files_str)
         rpm_spec_action = Action(spec_function, varlist=['RPM_FILES'])
         rpm_spec_env.Command(specfile, specfile_in, rpm_spec_action)
 
index 6f92fbc841ed871859d7c60ab6a830de669d865c..b0a4ba11d12a7d6f152cbd950e7d72be3eb692bd 100644 (file)
@@ -31,7 +31,7 @@ import string
 
 Import('env', 'whereis')
 
-env = env.Copy()
+env = env.Clone()
 
 env.TargetSignatures('content')
 
@@ -103,9 +103,9 @@ def scansgml(node, env, target):
 s = Scanner(name = 'sgml', function = scansgml, skeys = ['.sgml', '.mod'])
 
 orig_env = env
-env = orig_env.Copy(SCANNERS = [s],
-                    SCONS_PROC_PY = File('#bin/scons-proc.py').rfile(),
-                    SCONSOUTPUT_PY = File('#bin/sconsoutput.py').rfile())
+env = orig_env.Clone(SCANNERS = [s],
+                     SCONS_PROC_PY = File('#bin/scons-proc.py').rfile(),
+                     SCONSOUTPUT_PY = File('#bin/sconsoutput.py').rfile())
 
 # Fetch the list of files in the build engine that contain
 # SCons documentation XML for processing.
index a12bd68d6782ce50d8d819633cdfd7202ec3d3d7..1b30e6ac8ad90dbf8294ddc7e72306f4c359dd73 100644 (file)
@@ -1163,14 +1163,14 @@ would override the built-in gcc tool.
 Also note that the toolpath is
 stored in the environment for use
 by later calls to
-.BR Copy ()
+.BR Clone ()
 and
 .BR Tool ()
 methods:
 
 .ES
 base = Environment(toolpath=['custom_path'])
-derived = base.Copy(tools=['custom_tool'])
+derived = base.Clone(tools=['custom_tool'])
 derived.CustomBuilder()
 .EE
 
@@ -2274,7 +2274,7 @@ below, for a complete explanation of the arguments and behavior.
 
 '\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 .TP
-.RI env.Copy([ key = val ", ...])"
+.RI env.Clone([ key = val ", ...])"
 Return a separate copy of a construction environment.
 If there are any keyword arguments specified,
 they are added to the returned copy,
@@ -2282,8 +2282,8 @@ overwriting any existing values
 for the keywords.
 
 .ES
-env2 = env.Copy()
-env3 = env.Copy(CCFLAGS = '-g')
+env2 = env.Clone()
+env3 = env.Clone(CCFLAGS = '-g')
 .EE
 .IP
 Additionally, a list of tools and a toolpath may be specified, as in
@@ -2291,9 +2291,16 @@ the Environment constructor:
 
 .ES
 def MyTool(env): env['FOO'] = 'bar'
-env4 = env.Copy(tools = ['msvc', MyTool])
+env4 = env.Clone(tools = ['msvc', MyTool])
 .EE
 
+'\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.TP
+.RI env.Copy([ key = val ", ...])"
+A synonym for
+env.Clone().
+(This will probably be officially deprecated some day.)
+
 '\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 .TP
 .RI env.CVS( repository ", " module )
@@ -4400,11 +4407,11 @@ env = Environment(CC="cc")
 .EE
 
 or when copying a construction environment using the 
-.B Copy 
+.B Clone 
 method:
 
 .ES
-env2 = env.Copy(CC="cl.exe")
+env2 = env.Clone(CC="cl.exe")
 .EE
 
 .SS Configure Contexts
index 9b5c348fac097c907cd261284d3091ad158fb66e..ae453a0426a6ed4ef7e3d480a785edf4840a64f5 100644 (file)
@@ -620,7 +620,7 @@ environment undisturbed.
    to share the same values for one or more variables.
    Rather than always having to repeat all of the common
    variables when you create each construction environment,
-   you can use the &Copy; method
+   you can use the &Clone; method
    to create a copy of a construction environment.
 
    </para>
@@ -628,7 +628,7 @@ environment undisturbed.
    <para>
 
    Like the &Environment; call that creates a construction environment,
-   the &Copy; method takes &consvar; assignments,
+   the &Clone; method takes &consvar; assignments,
    which will override the values in the copied construction environment.
    For example, suppose we want to use &gcc;
    to create three versions of a program,
@@ -644,8 +644,8 @@ environment undisturbed.
    <scons_example name="ex5">
      <file name="SConstruct" printme="1">
       env = Environment(CC = 'gcc')
-      opt = env.Copy(CCFLAGS = '-O2')
-      dbg = env.Copy(CCFLAGS = '-g')
+      opt = env.Clone(CCFLAGS = '-O2')
+      dbg = env.Clone(CCFLAGS = '-g')
 
       env.Program('foo', 'foo.c')
 
index 14be5afdd738fc4decb420b25f2661d98e08c290..90f6e3f5f8d5028b56dfb279db18402b253bdc0c 100644 (file)
@@ -610,7 +610,7 @@ environment undisturbed.
    to share the same values for one or more variables.
    Rather than always having to repeat all of the common
    variables when you create each construction environment,
-   you can use the &Copy; method
+   you can use the &Clone; method
    to create a copy of a construction environment.
 
    </para>
@@ -618,7 +618,7 @@ environment undisturbed.
    <para>
 
    Like the &Environment; call that creates a construction environment,
-   the &Copy; method takes &consvar; assignments,
+   the &Clone; method takes &consvar; assignments,
    which will override the values in the copied construction environment.
    For example, suppose we want to use &gcc;
    to create three versions of a program,
@@ -633,8 +633,8 @@ environment undisturbed.
 
    <programlisting>
       env = Environment(CC = 'gcc')
-      opt = env.Copy(CCFLAGS = '-O2')
-      dbg = env.Copy(CCFLAGS = '-g')
+      opt = env.Clone(CCFLAGS = '-O2')
+      dbg = env.Clone(CCFLAGS = '-g')
 
       env.Program('foo', 'foo.c')
 
index 355aca342f0e50914768823f4e03fce5aac4af9e..2ec3fd3fc2383e09dd9d5c7da0d9c4061a5229c4 100644 (file)
@@ -638,7 +638,7 @@ make no difference to the build.
 
       <sconstruct>
         Import('env', 'debug')
-        env = env.Copy(DEBUG = debug)
+        env = env.Clone(DEBUG = debug)
         env.Program('prog', ['prog.c'])
       </sconstruct>
 
@@ -652,7 +652,7 @@ make no difference to the build.
 
       <sconstruct>
         Import('env debug')
-        env = env.Copy(DEBUG = debug)
+        env = env.Clone(DEBUG = debug)
         env.Program('prog', ['prog.c'])
       </sconstruct>
 
@@ -667,7 +667,7 @@ make no difference to the build.
 
       <sconstruct>
         Import('*')
-        env = env.Copy(DEBUG = debug)
+        env = env.Clone(DEBUG = debug)
         env.Program('prog', ['prog.c'])
       </sconstruct>
 
index 82811759630f54b8031787c41b72436a7d380dc4..047545d919f24eb89a1ce63b8c65e0cab4e166af 100644 (file)
@@ -602,7 +602,7 @@ make no difference to the build.
 
       <programlisting>
         Import('env', 'debug')
-        env = env.Copy(DEBUG = debug)
+        env = env.Clone(DEBUG = debug)
         env.Program('prog', ['prog.c'])
       </programlisting>
 
@@ -616,7 +616,7 @@ make no difference to the build.
 
       <programlisting>
         Import('env debug')
-        env = env.Copy(DEBUG = debug)
+        env = env.Clone(DEBUG = debug)
         env.Program('prog', ['prog.c'])
       </programlisting>
 
@@ -631,7 +631,7 @@ make no difference to the build.
 
       <programlisting>
         Import('*')
-        env = env.Copy(DEBUG = debug)
+        env = env.Clone(DEBUG = debug)
         env.Program('prog', ['prog.c'])
       </programlisting>
 
index 5440c1072b54f2c0a78b644ddc1c26313d317e54..7ee1fea5682dcc3c277a206918e2b48529d9288f 100644 (file)
@@ -233,18 +233,31 @@ runtest.py:  No tests were specified.
 """)
     sys.exit(1)
 
+if sys.platform in ('win32', 'cygwin'):
+
+    def whereis(file):
+        pathext = [''] + string.split(os.environ['PATHEXT'])
+        for dir in string.split(os.environ['PATH'], os.pathsep):
+            f = os.path.join(dir, file)
+            for ext in pathext:
+                fext = f + ext
+                if os.path.isfile(fext):
+                    return fext
+        return None
 
-def whereis(file):
-    for dir in string.split(os.environ['PATH'], os.pathsep):
-        f = os.path.join(dir, file)
-        if os.path.isfile(f):
-            try:
-                st = os.stat(f)
-            except OSError:
-                continue
-            if stat.S_IMODE(st[stat.ST_MODE]) & 0111:
-                return f
-    return None
+else:
+
+    def whereis(file):
+        for dir in string.split(os.environ['PATH'], os.pathsep):
+            f = os.path.join(dir, file)
+            if os.path.isfile(f):
+                try:
+                    st = os.stat(f)
+                except OSError:
+                    continue
+                if stat.S_IMODE(st[stat.ST_MODE]) & 0111:
+                    return f
+        return None
 
 try:
     qmtest
index 88e70dc88339e2a775b02cdbf258a6e0f4cfb163..778825e7cd1031a72649e926618e9e23aa56d705 100644 (file)
@@ -89,6 +89,10 @@ RELEASE 0.97 - XXX
   - Document the difference in construction variable expansion between
     {Action,Builder}() and env.{Action,Builder}().
 
+  - Change the name of env.Copy() to env.Clone(), keeping the old name
+    around for backwards compatibility (with the intention of eventually
+    phasing it out to avoid confusion with the Copy() Action factory).
+
   From Arve Knudsen:
 
   - Support cleaning and scanning SWIG-generated files.
index b5c0374485eb9dd8872806cd776b0721bd34395f..0c5f5873fa5aaa1f47f566fa9989b7201a2f6d02 100644 (file)
@@ -467,6 +467,45 @@ RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400
 
             SourceFileScanner.add_scanner('.x', XScanner)
 
+    --  THE env.Copy() METHOD WILL CHANGE OR GO AWAY ENTIRELY
+
+        The env.Copy() method (to make a copy of a construction
+        environment) is being replaced by the env.Clone() method.
+
+        In some future release, a deprecation warning will be added
+        to current uses of the env.Copy() method.  At some point after
+        the deprecation warning, the env.Copy() method will either be
+        removed entirely or have its behavior changed.
+
+        You can prepare for this by changing all your uses of env.Copy()
+        to env.Clone(), which has the exact same calling arguments.
+
+        NOTE:  CHANGING USES OF env.Copy() TO env.Clone() WILL MAKE YOUR
+        SConscript FILES NOT WORK ON EARLIER VERSIONS OF SCons.
+
+        If you change SConscript files in software that you make available
+        for download or otherwise distribute, other users may try to
+        build your software with an earlier version of SCons that does
+        not have the env.Clone() method.  We recommend preparing for
+        this in one of two ways:
+
+            --  Make your SConscript files backwards-compatible by
+                including the following code near the beginning of your
+                top-level SConstruct file:
+
+                    import SCons.Environment
+                    try:
+                        SCons.Environment.Environment.Clone
+                    except AttributeError:
+                        SCons.Environment.Environment.Clone = \
+                              SCons.Environment.Environment.Copy
+
+            --  Use the EnsureSConsVersion() function to provide a
+                descriptive error message if your SConscript files
+                are executed by an earlier version of SCons:
+
+                    EnsureSConsVersion(0, 96, 93)
+
   SCons is developed with an extensive regression test suite, and a
   rigorous development methodology for continually improving that suite.
   Because of this, SCons is of sufficient quality that you can use it
index 57910de412335740f98f06094db6ba0de89b1747..2c6d9159bafd82efe61f2c80ba38107187628c27 100644 (file)
@@ -152,7 +152,7 @@ class Environment:
         return self.d.items()
     def Dictionary(self):
         return self.d
-    def Copy(self, **kw):
+    def Clone(self, **kw):
         res = Environment()
         res.d = SCons.Environment.our_deepcopy(self.d)
         for k, v in kw.items():
@@ -908,7 +908,7 @@ class CommandActionTestCase(unittest.TestCase):
         cmd1 = r'%s %s %s xyzzy' % (_python_, act_py, outfile)
 
         act = SCons.Action.CommandAction(cmd1)
-        r = act([], [], env.Copy())
+        r = act([], [], env.Clone())
         assert r == 0
         c = test.read(outfile, 'r')
         assert c == "act.py: 'xyzzy'\n", c
@@ -916,7 +916,7 @@ class CommandActionTestCase(unittest.TestCase):
         cmd2 = r'%s %s %s $TARGET' % (_python_, act_py, outfile)
 
         act = SCons.Action.CommandAction(cmd2)
-        r = act(DummyNode('foo'), [], env.Copy())
+        r = act(DummyNode('foo'), [], env.Clone())
         assert r == 0
         c = test.read(outfile, 'r')
         assert c == "act.py: 'foo'\n", c
@@ -924,7 +924,7 @@ class CommandActionTestCase(unittest.TestCase):
         cmd3 = r'%s %s %s ${TARGETS}' % (_python_, act_py, outfile)
 
         act = SCons.Action.CommandAction(cmd3)
-        r = act(map(DummyNode, ['aaa', 'bbb']), [], env.Copy())
+        r = act(map(DummyNode, ['aaa', 'bbb']), [], env.Clone())
         assert r == 0
         c = test.read(outfile, 'r')
         assert c == "act.py: 'aaa' 'bbb'\n", c
@@ -932,7 +932,7 @@ class CommandActionTestCase(unittest.TestCase):
         cmd4 = r'%s %s %s $SOURCES' % (_python_, act_py, outfile)
 
         act = SCons.Action.CommandAction(cmd4)
-        r = act([], [DummyNode('one'), DummyNode('two')], env.Copy())
+        r = act([], [DummyNode('one'), DummyNode('two')], env.Clone())
         assert r == 0
         c = test.read(outfile, 'r')
         assert c == "act.py: 'one' 'two'\n", c
@@ -941,7 +941,7 @@ class CommandActionTestCase(unittest.TestCase):
 
         act = SCons.Action.CommandAction(cmd4)
         sources = [DummyNode('three'), DummyNode('four'), DummyNode('five')]
-        env2 = env.Copy()
+        env2 = env.Clone()
         r = act([], source = sources, env = env2)
         assert r == 0
         c = test.read(outfile, 'r')
@@ -964,7 +964,7 @@ class CommandActionTestCase(unittest.TestCase):
         act = SCons.Action.CommandAction(cmd5)
         r = act(target = DummyNode('out5'),
                 source = [],
-                env = env.Copy(ENV = {'XYZZY' : 'xyzzy5',
+                env = env.Clone(ENV = {'XYZZY' : 'xyzzy5',
                                       'PATH' : PATH}))
         assert r == 0
         c = test.read(outfile, 'r')
@@ -985,7 +985,7 @@ class CommandActionTestCase(unittest.TestCase):
         act = SCons.Action.CommandAction(cmd6)
         r = act(target = [Obj('111'), Obj('222')],
                         source = [Obj('333'), Obj('444'), Obj('555')],
-                        env = env.Copy())
+                        env = env.Clone())
         assert r == 0
         c = test.read(outfile, 'r')
         assert c == "act.py: '222' '111' '333' '444'\n", c
@@ -1004,18 +1004,18 @@ class CommandActionTestCase(unittest.TestCase):
 
         # Test that a nonexistent command returns 127
         act = SCons.Action.CommandAction(python + "_no_such_command_")
-        r = act([], [], env.Copy(out = outfile))
+        r = act([], [], env.Clone(out = outfile))
         assert r == expect_nonexistent, "r == %d" % r
 
         # Test that trying to execute a directory returns 126
         dir, tail = os.path.split(python)
         act = SCons.Action.CommandAction(dir)
-        r = act([], [], env.Copy(out = outfile))
+        r = act([], [], env.Clone(out = outfile))
         assert r == expect_nonexecutable, "r == %d" % r
 
         # Test that trying to execute a non-executable file returns 126
         act = SCons.Action.CommandAction(outfile)
-        r = act([], [], env.Copy(out = outfile))
+        r = act([], [], env.Clone(out = outfile))
         assert r == expect_nonexecutable, "r == %d" % r
 
         act = SCons.Action.CommandAction('%s %s 1' % (_python_, exit_py))
index 7aa190913c34ee42d47faa81f6dd065954551dc1..a5bffc8d5704c2cdddf16e2b9b72b2e3912c7d3a 100644 (file)
@@ -474,7 +474,7 @@ class SubstitutionEnvironment:
         the overrides dictionaries.  "overrides" is a dictionary that
         will override the variables of this environment.
 
-        This function is much more efficient than Copy() or creating
+        This function is much more efficient than Clone() or creating
         a new Environment because it doesn't copy the construction
         environment dictionary, it just wraps the underlying construction
         environment, and doesn't even create a wrapper object if there
@@ -999,7 +999,7 @@ class Base(SubstitutionEnvironment):
                     self._dict[key] = self._dict[key] + val
         self.scanner_map_delete(kw)
 
-    def Copy(self, tools=[], toolpath=None, **kw):
+    def Clone(self, tools=[], toolpath=None, **kw):
         """Return a copy of a construction Environment.  The
         copy is like a Python "deep copy"--that is, independent
         copies are made recursively of each objects--except that
@@ -1023,9 +1023,12 @@ class Base(SubstitutionEnvironment):
         for key, value in kw.items():
             new[key] = SCons.Subst.scons_subst_once(value, self, key)
         apply(clone.Replace, (), new)
-        if __debug__: logInstanceCreation(self, 'Environment.EnvironmentCopy')
+        if __debug__: logInstanceCreation(self, 'Environment.EnvironmentClone')
         return clone
 
+    def Copy(self, *args, **kw):
+        return apply(self.Clone, args, kw)
+
     def Detect(self, progs):
         """Return the first available program in progs.  __cacheable__
         """
index 52aac235700241f416d4ad742899959cfb524904..edf374084d021a8fb9cbec339b2f185b9ac85048 100644 (file)
@@ -834,7 +834,7 @@ class BaseTestCase(unittest.TestCase,TestEnvironmentFixture):
         assert built_it['out2']
         assert built_it['out3']
 
-        env4 = env3.Copy()
+        env4 = env3.Clone()
         assert env4.builder1.env is env4, "builder1.env (%s) == env3 (%s)?" % (env4.builder1.env, env3)
         assert env4.builder2.env is env4, "builder2.env (%s) == env3 (%s)?" % (env4.builder1.env, env3)
 
@@ -915,7 +915,7 @@ class BaseTestCase(unittest.TestCase,TestEnvironmentFixture):
         s = map(env.get_scanner, suffixes)
         assert s == [s1, s1, None, s2, s3], s
 
-        env = env.Copy(SCANNERS = [s2])
+        env = env.Clone(SCANNERS = [s2])
         s = map(env.get_scanner, suffixes)
         assert s == [None, None, None, s2, None], s
 
@@ -1468,19 +1468,19 @@ def exists(env):
         assert isinstance(result, CLVar), repr(result)
         assert result == ['bar'], result
 
-    def test_Copy(self):
+    def test_Clone(self):
         """Test construction environment copying
 
         Update the copy independently afterwards and check that
         the original remains intact (that is, no dangling
         references point to objects in the copied environment).
-        Copy the original with some construction variable
+        Clone the original with some construction variable
         updates and check that the original remains intact
         and the copy has the updated values.
         """
         env1 = self.TestEnvironment(XXX = 'x', YYY = 'y')
-        env2 = env1.Copy()
-        env1copy = env1.Copy()
+        env2 = env1.Clone()
+        env1copy = env1.Clone()
         assert env1copy == env1copy
         assert env2 == env2
         env2.Replace(YYY = 'yyy')
@@ -1488,7 +1488,7 @@ def exists(env):
         assert env1 != env2
         assert env1 == env1copy
 
-        env3 = env1.Copy(XXX = 'x3', ZZZ = 'z3')
+        env3 = env1.Clone(XXX = 'x3', ZZZ = 'z3')
         assert env3 == env3
         assert env3.Dictionary('XXX') == 'x3'
         assert env3.Dictionary('YYY') == 'y'
@@ -1501,7 +1501,7 @@ def exists(env):
             pass
         env1 = self.TestEnvironment(XXX=TestA(), YYY = [ 1, 2, 3 ],
                            ZZZ = { 1:2, 3:4 })
-        env2=env1.Copy()
+        env2=env1.Clone()
         env2.Dictionary('YYY').append(4)
         env2.Dictionary('ZZZ')[5] = 6
         assert env1.Dictionary('XXX') is env2.Dictionary('XXX')
@@ -1514,7 +1514,7 @@ def exists(env):
         env1 = self.TestEnvironment(BUILDERS = {'b1' : 1})
         assert hasattr(env1, 'b1'), "env1.b1 was not set"
         assert env1.b1.env == env1, "b1.env doesn't point to env1"
-        env2 = env1.Copy(BUILDERS = {'b2' : 2})
+        env2 = env1.Clone(BUILDERS = {'b2' : 2})
         assert env2 is env2
         assert env2 == env2
         assert hasattr(env1, 'b1'), "b1 was mistakenly cleared from env1"
@@ -1529,8 +1529,8 @@ def exists(env):
         def bar(env): env['BAR'] = 2
         def baz(env): env['BAZ'] = 3
         env1 = self.TestEnvironment(tools=[foo])
-        env2 = env1.Copy()
-        env3 = env1.Copy(tools=[bar, baz])
+        env2 = env1.Clone()
+        env3 = env1.Clone(tools=[bar, baz])
 
         assert env1.get('FOO') is 1
         assert env1.get('BAR') is None
@@ -1545,7 +1545,7 @@ def exists(env):
         # Ensure that recursive variable substitution when copying
         # environments works properly.
         env1 = self.TestEnvironment(CCFLAGS = '-DFOO', XYZ = '-DXYZ')
-        env2 = env1.Copy(CCFLAGS = '$CCFLAGS -DBAR',
+        env2 = env1.Clone(CCFLAGS = '$CCFLAGS -DBAR',
                          XYZ = ['-DABC', 'x $XYZ y', '-DDEF'])
         x = env2.get('CCFLAGS')
         assert x == '-DFOO -DBAR', x
@@ -1557,7 +1557,7 @@ def exists(env):
         env1 = self.TestEnvironment(FLAGS = CLVar('flag1 flag2'))
         x = env1.get('FLAGS')
         assert x == ['flag1', 'flag2'], x
-        env2 = env1.Copy()
+        env2 = env1.Clone()
         env2.Append(FLAGS = 'flag3 flag4')
         x = env2.get('FLAGS')
         assert x == ['flag1', 'flag2', 'flag3', 'flag4'], x
@@ -1582,9 +1582,21 @@ def generate(env):
 
         env = self.TestEnvironment(tools=['xxx'], toolpath=[test.workpath('')])
         assert env['XXX'] == 'one', env['XXX']
-        env = env.Copy(tools=['yyy'])
+        env = env.Clone(tools=['yyy'])
         assert env['YYY'] == 'two', env['YYY']
 
+    def test_Copy(self):
+        """Test copying using the old env.Copy() method"""
+        env1 = self.TestEnvironment(XXX = 'x', YYY = 'y')
+        env2 = env1.Copy()
+        env1copy = env1.Copy()
+        assert env1copy == env1copy
+        assert env2 == env2
+        env2.Replace(YYY = 'yyy')
+        assert env2 == env2
+        assert env1 != env2
+        assert env1 == env1copy
+
     def test_Detect(self):
         """Test Detect()ing tools"""
         test = TestCmd.TestCmd(workdir = '')
@@ -3166,11 +3178,11 @@ def generate(env):
         for x in added:
             assert env.has_key(x), bad_msg % x
 
-        copy = env.Copy(TARGETS = 'targets',
-                        SOURCES = 'sources',
-                        SOURCE = 'source',
-                        TARGET = 'target',
-                        COPY = 'copy')
+        copy = env.Clone(TARGETS = 'targets',
+                         SOURCES = 'sources',
+                         SOURCE = 'source',
+                         TARGET = 'target',
+                         COPY = 'copy')
         for x in reserved:
             assert not copy.has_key(x), env[x]
         for x in added + ['COPY']:
@@ -3341,10 +3353,10 @@ class OverrideEnvironmentTestCase(unittest.TestCase,TestEnvironmentFixture):
     # SourceSignatures()
     # TargetSignatures()
 
-    # It's unlikely Copy() will ever be called this way, so let the
+    # It's unlikely Clone() will ever be called this way, so let the
     # other methods test that handling overridden values works.
-    #def test_Copy(self):
-    #    """Test the OverrideEnvironment Copy() method"""
+    #def test_Clone(self):
+    #    """Test the OverrideEnvironment Clone() method"""
     #    pass
 
     def test_FindIxes(self):
index 0acbee3d0aba0cff20fc5db12474bcce81909ed0..3ad4cc717e1e81be99457c5abe8cbc2211d60e43 100644 (file)
@@ -386,7 +386,7 @@ int main() {
             def libs(env):
                 return env.get('LIBS', [])
 
-            env = sconf.env.Copy()
+            env = sconf.env.Clone()
 
             try:
                 r = sconf.CheckLib( existing_lib, "main", autoadd=1 )
@@ -395,7 +395,7 @@ int main() {
                 got = libs(sconf.env)
                 assert got == expect, "LIBS: expected %s, got %s" % (expect, got)
 
-                sconf.env = env.Copy()
+                sconf.env = env.Clone()
                 r = sconf.CheckLib( existing_lib, "main", autoadd=0 )
                 assert r, "did not find main in %s" % existing_lib
                 expect = libs(env)
@@ -449,7 +449,7 @@ int main() {
             def libs(env):
                 return env.get('LIBS', [])
 
-            env = sconf.env.Copy()
+            env = sconf.env.Clone()
 
             try:
                 r = sconf.CheckLibWithHeader( existing_lib, "math.h", "C", autoadd=1 )
@@ -458,7 +458,7 @@ int main() {
                 got = libs(sconf.env)
                 assert got == expect, "LIBS: expected %s, got %s" % (expect, got)
 
-                sconf.env = env.Copy()
+                sconf.env = env.Clone()
                 r = sconf.CheckLibWithHeader( existing_lib, "math.h", "C", autoadd=0 )
                 assert r, "did not find math.h with %s" % existing_lib
                 expect = libs(env)
index eff8f97180aa0119c754753f8df7f3e6049299d9..b100473727e873f74ca87c20e86cfd871daa564e 100644 (file)
@@ -795,7 +795,7 @@ def scons_subst_once(strSubst, env, key):
     in an Environment.  We want to capture (expand) the old value before
     we override it, so people can do things like:
 
-        env2 = env.Copy(CCFLAGS = '$CCFLAGS -g')
+        env2 = env.Clone(CCFLAGS = '$CCFLAGS -g')
 
     We do this with some straightforward, brute-force code here...
     """
index 2c9e624d257d503cf28622d8ad4ab585df4320f8..8bfa7402c0ce18590b14c63634545ba806b88db0 100644 (file)
@@ -182,8 +182,8 @@ os.system(cmd)
 
     test.write('SConstruct', """\
 aaa = Environment()
-bbb = aaa.Copy(AS = r'%(_python_)s wrapper.py ' + WhereIs('as'))
-ccc = aaa.Copy(CPPPATH=['.'])
+bbb = aaa.Clone(AS = r'%(_python_)s wrapper.py ' + WhereIs('as'))
+ccc = aaa.Clone(CPPPATH=['.'])
 aaa.Program(target = 'aaa', source = ['aaa.s', 'aaa_main.c'])
 bbb.Program(target = 'bbb', source = ['bbb.s', 'bbb_main.c'])
 ccc.Program(target = 'ccc', source = ['ccc.S', 'ccc_main.c'])
@@ -317,7 +317,7 @@ import os
 ccc = Environment(tools = ['msvc', 'mslink', 'masm'],
                   ASFLAGS = '/nologo /coff')
 ccc['ENV']['PATH'] = ccc['ENV']['PATH'] + os.pathsep + os.environ['PATH']
-ddd = ccc.Copy(AS = r'%(_python_)s wrapper.py ' + ccc['AS'])
+ddd = ccc.Clone(AS = r'%(_python_)s wrapper.py ' + ccc['AS'])
 ccc.Program(target = 'ccc', source = ['ccc.asm', 'ccc_main.c'])
 ddd.Program(target = 'ddd', source = ['ddd.asm', 'ddd_main.c'])
 """ % locals())
@@ -407,7 +407,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 eee = Environment(tools = ['gcc', 'gnulink', 'nasm'],
                   ASFLAGS = '-f %(nasm_format)s')
-fff = eee.Copy(AS = r'%(_python_)s wrapper.py ' + WhereIs('nasm'))
+fff = eee.Clone(AS = r'%(_python_)s wrapper.py ' + WhereIs('nasm'))
 eee.Program(target = 'eee', source = ['eee.asm', 'eee_main.c'])
 fff.Program(target = 'fff', source = ['fff.asm', 'fff_main.c'])
 """ % locals())
index e076f24f7332587095361925435a12750e0835bb..7566f2f99115e712e9bbdd65436a099210b75de9 100644 (file)
@@ -121,7 +121,7 @@ print "B =", B
 print "B.env =", B.env
 env1.Append(BUILDERS = {'B' : B})
 env2.Append(BUILDERS = {'B' : B})
-env3 = env1.Copy(X='333')
+env3 = env1.Clone(X='333')
 print "env1 =", env1
 print "env2 =", env2
 print "env3 =", env3
index f655bf92c0223a4bab345b98944a90926fe80625..f3085796d33592defc61be2bf08b1aaca8a6f9d6 100644 (file)
@@ -113,7 +113,7 @@ env.Command(target='f3.h', source='f3h.in', action=buildIt)
 env.Command(target='f4.h', source='f4h.in', action=buildIt)
 env.Command(target='f4.c', source='f4.in', action=buildIt)
 
-env2=env.Copy(CPPPATH='.')
+env2=env.Clone(CPPPATH='.')
 env2.Program(target='foo3', source='f3.c')
 env2.Program(target='foo4', source='f4.c')
 
@@ -124,8 +124,8 @@ except:
 
 if fortran and env.Detect(fortran):
     env.Command(target='b2.f', source='b2.in', action=buildIt)
-    env.Copy(LIBS = %s).Program(target='bar2', source='b2.f')
-    env.Copy(LIBS = %s).Program(target='bar1', source='b1.f')
+    env.Clone(LIBS = %s).Program(target='bar2', source='b2.f')
+    env.Clone(LIBS = %s).Program(target='bar1', source='b1.f')
 """ % (fortran_runtime, fortran_runtime))
 
 test.write(['work1', 'src', 'f1.c'], r"""
index 2ae50b5450dda6a2f4cb0ff86912d01685bcd603..725427988add37c83d8dc85063af75569e81ea00 100644 (file)
@@ -51,7 +51,7 @@ SConscript(dirs=['glscry'])
 
 test.write(['src', 'glscry', 'SConscript'], """\
 Import('*')
-env = env.Copy()
+env = env.Clone()
 env.Append(CPPPATH=['.'])
 env.Library('foo', 'foo.c')
 """)
index d9e110e22728a57f4515aa9de963f72a84c76a41..f6dd13bf42db7ef4ca58943d250ab8c0f0a35a33 100644 (file)
@@ -43,7 +43,7 @@ BUILD_DIR = '../build'
 base_env = Environment()
 
 for flavor in ['prod', 'debug']:
-    build_env = base_env.Copy()
+    build_env = base_env.Clone()
     # In real life, we would modify build_env appropriately here
     FLAVOR_DIR = BUILD_DIR + '/' + flavor
     Export('build_env')
index 316da0f0acc91e4577017bffc373228a9d537b33..fc9264f7b915f97f7c3d7a6d84e7e14d9b638390 100644 (file)
@@ -50,11 +50,11 @@ foo.SharedLibrary(target = 'foo', source = foo_obj)
 bar_obj = bar.SharedObject(target = 'bar', source = 'prog.c')
 bar.SharedLibrary(target = 'bar', source = bar_obj)
 
-fooMain = foo.Copy(LIBS='foo', LIBPATH='.')
+fooMain = foo.Clone(LIBS='foo', LIBPATH='.')
 foomain_obj = fooMain.Object(target='foomain', source='main.c')
 fooMain.Program(target='fooprog', source=foomain_obj)
 
-barMain = bar.Copy(LIBS='bar', LIBPATH='.')
+barMain = bar.Clone(LIBS='bar', LIBPATH='.')
 barmain_obj = barMain.Object(target='barmain', source='main.c')
 barMain.Program(target='barprog', source=barmain_obj)
 """ % (fooflags, barflags))
@@ -116,7 +116,7 @@ bar.SharedLibrary(target = 'foo', source = foo_obj)
 bar_obj = bar.SharedObject(target = 'bar', source = 'prog.c')
 bar.SharedLibrary(target = 'bar', source = bar_obj)
 
-barMain = bar.Copy(LIBS='bar', LIBPATH='.')
+barMain = bar.Clone(LIBS='bar', LIBPATH='.')
 foomain_obj = barMain.Object(target='foomain', source='main.c')
 barmain_obj = barMain.Object(target='barmain', source='main.c')
 barMain.Program(target='barprog', source=foomain_obj)
index 9cbadf24971babe3fe570dedc988f80490c30e9a..1fa615aff62221b62300505f07a813a842fb6846 100644 (file)
@@ -48,7 +48,7 @@ sys.exit(0)
 test.write('SConstruct', """
 env = Environment(LEX = r'%(_python_)s mylex.py', tools = ['lex'])
 env.CFile(target = 'foo', source = 'foo.l')
-env.Copy(CFILESUFFIX = '.xyz').CFile(target = 'bar', source = 'bar.l')
+env.Clone(CFILESUFFIX = '.xyz').CFile(target = 'bar', source = 'bar.l')
 """ % locals())
 
 input = r"""
index 8639eb27ba7637957ec978c0081f64b412321095..61aaecd69abef5337ea4fb5f39ebe9fd5dc2b2c0 100644 (file)
@@ -55,10 +55,10 @@ test_list = [
 ]
 env = Environment(CPPDEFPREFIX='-D', CPPDEFSUFFIX='')
 for i in test_list:
-    print env.Copy(CPPDEFINES=i).subst('$_CPPDEFFLAGS')
+    print env.Clone(CPPDEFINES=i).subst('$_CPPDEFFLAGS')
 env = Environment(CPPDEFPREFIX='|', CPPDEFSUFFIX='|')
 for i in test_list:
-    print env.Copy(CPPDEFINES=i).subst('$_CPPDEFFLAGS')
+    print env.Clone(CPPDEFINES=i).subst('$_CPPDEFFLAGS')
 """)
 
 expect = test.wrap_stdout(build_str="scons: `.' is up to date.\n", 
index 62e8cc10b8f99bb2d8db9d51db2dfecafed75d39..b156f748bc58648a4b83869da6e81c7bdbcfa906 100644 (file)
@@ -48,7 +48,7 @@ sys.exit(0)
 test.write('SConstruct', """
 env = Environment(LEX = r'%(_python_)s mylex.py', tools = ['lex'])
 env.CXXFile(target = 'foo', source = 'foo.ll')
-env.Copy(CXXFILESUFFIX = '.xyz').CXXFile(target = 'bar', source = 'bar.ll')
+env.Clone(CXXFILESUFFIX = '.xyz').CXXFile(target = 'bar', source = 'bar.ll')
 """ % locals())
 
 input = r"""
index 049835c7613be0d168c28fb908aa81d5a0c2ec0f..bfe1a79e7c56f4483632088f1fad4a3b7d0c4c58 100644 (file)
@@ -50,11 +50,11 @@ bar.SharedObject(target = 'bar%s', source = 'prog.cpp')
 foo.SharedLibrary(target = 'foo', source = 'foo%s')
 bar.SharedLibrary(target = 'bar', source = 'bar%s')
 
-fooMain = foo.Copy(LIBS='foo', LIBPATH='.')
+fooMain = foo.Clone(LIBS='foo', LIBPATH='.')
 foo_obj = fooMain.Object(target='foomain', source='main.c')
 fooMain.Program(target='fooprog', source=foo_obj)
 
-barMain = bar.Copy(LIBS='bar', LIBPATH='.')
+barMain = bar.Clone(LIBS='bar', LIBPATH='.')
 bar_obj = barMain.Object(target='barmain', source='main.c')
 barMain.Program(target='barprog', source=bar_obj)
 """ % (fooflags, barflags, _obj, _obj, _obj, _obj))
@@ -114,7 +114,7 @@ bar.SharedObject(target = 'bar%s', source = 'prog.cpp')
 bar.SharedLibrary(target = 'foo', source = 'foo%s')
 bar.SharedLibrary(target = 'bar', source = 'bar%s')
 
-barMain = bar.Copy(LIBS='bar', LIBPATH='.')
+barMain = bar.Clone(LIBS='bar', LIBPATH='.')
 foo_obj = barMain.Object(target='foomain', source='main.c')
 bar_obj = barMain.Object(target='barmain', source='main.c')
 barMain.Program(target='barprog', source=foo_obj)
diff --git a/test/Clone-compatibility.py b/test/Clone-compatibility.py
new file mode 100644 (file)
index 0000000..53719e9
--- /dev/null
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Verify that a specific snippet of backwards-compatibility code works.
+
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.write('SConstruct', """
+
+# When the 0.96.93 release introduced the env.Clone() we advertised this
+# code as the correct pattern for maintaining the backwards compatibility
+# of SConstruct files to earlier release of SCons.  Going forward, make
+# sure it still works (or at least doesn't blow up).
+import SCons.Environment
+try:
+    SCons.Environment.Environment.Clone
+except AttributeError:
+    SCons.Environment.Environment.Clone = SCons.Environment.Environment.Copy
+
+env1 = Environment(X = 1)
+env2 = env1.Clone(X = 2)
+
+print env1['X']
+print env2['X']
+""")
+
+test.run(arguments = '-q -Q', stdout = "1\n2\n")
+
+test.pass_test()
index 505d69b3c96f8df4ce43856b9933ddc6c4d2982b..25b60544773c0c1c7180e2b152ea9e56b9f447b3 100644 (file)
@@ -47,7 +47,7 @@ opts.AddOptions(
         gpib_options),
     )
 env = Environment(options = opts, CPPPATH = ['#/'])
-new_env=env.Copy()
+new_env=env.Clone()
 """)
 
 test.run(arguments = '.')
index 3b8566c5bea0f059e72aeb2ebabfcbfe8b3367b6..fa07a8804efceea7f60496be48f33d18a8aa7b1b 100644 (file)
@@ -57,7 +57,7 @@ env = Environment()
 env['BUILDERS']['TestDir'] = test_bld_dir
 env['BUILDERS']['TestFile'] = test_bld_file
 
-env_bsig = env.Copy()
+env_bsig = env.Clone()
 env_bsig.TargetSignatures('build')
 env_bsig.TestFile(source='junk.txt', target='bsig/junk.out')
 env_bsig.TestDir(source='bsig', target='bsig.out')
@@ -65,7 +65,7 @@ env_bsig.Command('cmd-bsig-noscan.out', 'cmd-bsig', writeTarget)
 env_bsig.Command('cmd-bsig.out', 'cmd-bsig', writeTarget,
                  source_scanner=DirScanner)
 
-env_csig = env.Copy()
+env_csig = env.Clone()
 env_csig.TargetSignatures('content')
 env_csig.TestFile(source='junk.txt', target='csig/junk.out')
 env_csig.TestDir(source='csig', target='csig.out')
index 682cfb030e3e3331cb590dbe66e48cd1971a08d9..536483d8d3b6b9253aa9ba7f1a7fd3b16a33a666 100644 (file)
@@ -193,7 +193,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f77 = foo.Dictionary('F77')
-bar = foo.Copy(F77 = r'%(_python_)s wrapper.py ' + f77)
+bar = foo.Clone(F77 = r'%(_python_)s wrapper.py ' + f77)
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index b1d91426e95a7da94ae0501033f1fcac977b98e8..cd25167f28e124ccb69527317efb51df71987af1 100644 (file)
@@ -148,7 +148,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %FTN_LIBs)
 f77 = foo.Dictionary('F77')
-bar = foo.Copy(F77 = r'%(_python_)s wrapper.py ' + f77, F77FLAGS = '-Ix')
+bar = foo.Clone(F77 = r'%(_python_)s wrapper.py ' + f77, F77FLAGS = '-Ix')
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index 6b38e8e3281a98fd3dd477d8fafceb4a7c006ebd..cadfb016331e8b670821f0db93b68125e91dc886 100644 (file)
@@ -159,7 +159,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f90 = foo.Dictionary('F90')
-bar = foo.Copy(F90 = r'%(_python_)s wrapper.py ' + f90)
+bar = foo.Clone(F90 = r'%(_python_)s wrapper.py ' + f90)
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index 9a57eaeac058f33f9c8bd1ae8be61a2bdbfeec82..2243ba63961380e9e7eea3616287021e364ebfc6 100644 (file)
@@ -163,7 +163,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f90 = foo.Dictionary('F90')
-bar = foo.Copy(F90 = r'%(_python_)s wrapper.py ' + f90, F90FLAGS = '-Ix')
+bar = foo.Clone(F90 = r'%(_python_)s wrapper.py ' + f90, F90FLAGS = '-Ix')
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index 1b5fc41086e6735f2e1d874e6bc847f7838eaead..767a3b449114a022cae3220de8f1c677cda3cde0 100644 (file)
@@ -159,7 +159,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f95 = foo.Dictionary('F95')
-bar = foo.Copy(F95 = r'%(_python_)s wrapper.py ' + f95)
+bar = foo.Clone(F95 = r'%(_python_)s wrapper.py ' + f95)
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index 7ccffed7196c168ef544b72ec8ea2ef2c1670029..7d324197c27d1c2f11bd301b19a174f810b5390f 100644 (file)
@@ -163,7 +163,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f95 = foo.Dictionary('F95')
-bar = foo.Copy(F95 = r'%(_python_)s wrapper.py ' + f95, F95FLAGS = '-Ix')
+bar = foo.Clone(F95 = r'%(_python_)s wrapper.py ' + f95, F95FLAGS = '-Ix')
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index 1bd44073f066698d6b32cea435b3d3295204000a..235de74c88219b8e0e4356311d41f5487c668a4d 100644 (file)
@@ -156,7 +156,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f77 = foo.Dictionary('FORTRAN')
-bar = foo.Copy(FORTRAN = r'%(_python_)s wrapper.py ' + f77)
+bar = foo.Clone(FORTRAN = r'%(_python_)s wrapper.py ' + f77)
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index 6dd27d7f02d25a9dac64cf0811d73901c4338e5d..8ae00f8906a903cab7e2f064bb354069956a0cb0 100644 (file)
@@ -160,7 +160,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 f77 = foo.Dictionary('FORTRAN')
-bar = foo.Copy(FORTRAN = r'%(_python_)s wrapper.py ' + f77, FORTRANFLAGS = '-Ix')
+bar = foo.Clone(FORTRAN = r'%(_python_)s wrapper.py ' + f77, FORTRANFLAGS = '-Ix')
 foo.Program(target = 'foo', source = 'foo.f')
 bar.Program(target = 'bar', source = 'bar.f')
 """ % locals())
index c9569c944fffd3697041e132d9f0151a3d6054e4..3f1f7e7c2348d239f66b8423262e371f2baa7c7b 100644 (file)
@@ -148,7 +148,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = 'g2c')
 shf77 = foo.Dictionary('SHF77')
-bar = foo.Copy(SHF77 = r'%(_python_)s wrapper.py ' + shf77)
+bar = foo.Clone(SHF77 = r'%(_python_)s wrapper.py ' + shf77)
 foo.SharedObject(target = 'foo/foo', source = 'foo.f')
 bar.SharedObject(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 5354a576cf998664947d7f9a4493ebfa412204c9..5099edf72a3a1573565d594c8889ae322905a69f 100644 (file)
@@ -119,7 +119,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 shf77 = foo.Dictionary('SHF77')
-bar = foo.Copy(SHF77 = r'%(_python_)s wrapper.py ' + shf77, SHF77FLAGS = '-Ix')
+bar = foo.Clone(SHF77 = r'%(_python_)s wrapper.py ' + shf77, SHF77FLAGS = '-Ix')
 foo.SharedLibrary(target = 'foo/foo', source = 'foo.f')
 bar.SharedLibrary(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 1696b4a846082f923e48b3ae52e2873e25d79e1d..36d0a318da3a2b7aa701a8c4400c84008ea43d0a 100644 (file)
@@ -121,7 +121,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = 'g2c')
 shf90 = foo.Dictionary('SHF90')
-bar = foo.Copy(SHF90 = r'%(_python_)s wrapper.py ' + shf90)
+bar = foo.Clone(SHF90 = r'%(_python_)s wrapper.py ' + shf90)
 foo.SharedObject(target = 'foo/foo', source = 'foo.f')
 bar.SharedObject(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 62bb7d0d5a4766be296d77081c9c4f053c6fa4fa..daf6366049b763f89b686c387f9d505504011684 100644 (file)
@@ -134,7 +134,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 shf90 = foo.Dictionary('SHF90')
-bar = foo.Copy(SHF90 = r'%(_python_)s wrapper.py ' + shf90, SHF90FLAGS = '-Ix')
+bar = foo.Clone(SHF90 = r'%(_python_)s wrapper.py ' + shf90, SHF90FLAGS = '-Ix')
 foo.SharedLibrary(target = 'foo/foo', source = 'foo.f')
 bar.SharedLibrary(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 85702df23a54e72265d21ec05fa20af9fcbd609b..b9db6bad3a62ed7ebee361c977faacd9673ecfee 100644 (file)
@@ -121,7 +121,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = 'g2c')
 shf95 = foo.Dictionary('SHF95')
-bar = foo.Copy(SHF95 = r'%(_python_)s wrapper.py ' + shf95)
+bar = foo.Clone(SHF95 = r'%(_python_)s wrapper.py ' + shf95)
 foo.SharedObject(target = 'foo/foo', source = 'foo.f')
 bar.SharedObject(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 2288a4a50900c0851e2a74732938ec07eb6e9814..09f9b9812e91ade3dd27e125c9aaa16b67ce7842 100644 (file)
@@ -134,7 +134,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 shf95 = foo.Dictionary('SHF95')
-bar = foo.Copy(SHF95 = r'%(_python_)s wrapper.py ' + shf95, SHF95FLAGS = '-Ix')
+bar = foo.Clone(SHF95 = r'%(_python_)s wrapper.py ' + shf95, SHF95FLAGS = '-Ix')
 foo.SharedLibrary(target = 'foo/foo', source = 'foo.f')
 bar.SharedLibrary(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 586b54e13753d675f6ef5004159024bf7d352ad6..5b9cfc6cb369b84d95eb52219f72116c6e537895 100644 (file)
@@ -119,7 +119,7 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = 'g2c')
 shfortran = foo.Dictionary('SHFORTRAN')
-bar = foo.Copy(SHFORTRAN = r'%(_python_)s wrapper.py ' + shfortran)
+bar = foo.Clone(SHFORTRAN = r'%(_python_)s wrapper.py ' + shfortran)
 foo.SharedObject(target = 'foo/foo', source = 'foo.f')
 bar.SharedObject(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index d09a28303fc09f9a1f4ed59f7a716ae97a1a1982..ec74061f6540b1de9f3b820d7e8d00316e86b157 100644 (file)
@@ -131,8 +131,8 @@ os.system(string.join(sys.argv[1:], " "))
     test.write('SConstruct', """
 foo = Environment(LIBS = %(FTN_LIB)s)
 shfortran = foo.Dictionary('SHFORTRAN')
-bar = foo.Copy(SHFORTRAN = r'%(_python_)s wrapper.py ' + shfortran,
-               SHFORTRANFLAGS = '-Ix')
+bar = foo.Clone(SHFORTRAN = r'%(_python_)s wrapper.py ' + shfortran,
+                SHFORTRANFLAGS = '-Ix')
 foo.SharedLibrary(target = 'foo/foo', source = 'foo.f')
 bar.SharedLibrary(target = 'bar/bar', source = 'bar.f')
 """ % locals())
index 3cdd207ff0a27c823f775c8f45662680c38e00c2..a47d22cc3fb04c4d22b16a7d07ac23831b4bff7a 100644 (file)
@@ -66,7 +66,7 @@ def gen_a_h(target, source, env):
     t.write(s.readline()[:-1] + ';\\n')
 
 MakeHeader = Builder(action = gen_a_h)
-env_no_scan = env.Copy(SCANNERS=[], BUILDERS={'MakeHeader' : MakeHeader})
+env_no_scan = env.Clone(SCANNERS=[], BUILDERS={'MakeHeader' : MakeHeader})
 env_no_scan.MakeHeader('a.h', 'a.c')
 
 env.StaticObject('a.c')
index 6f3f986ad40dfcbc9f92b437a270868d1f5c2e88..15ac086ca5ba9c1e3b24fa8343137a96d3e47037 100644 (file)
@@ -63,7 +63,7 @@ import os.path
 
 Import('env')
 
-local = env.Copy(WINDOWS_INSERT_DEF = 1)
+local = env.Clone(WINDOWS_INSERT_DEF = 1)
 
 barsrc = [
     'BarObject.cpp',
index e24641bea318cf1d84981d9ce723e8b78f88eeb4..3c1dc49f7fa66af68c33d743e9322de087c7fb7c 100644 (file)
@@ -64,7 +64,7 @@ def my_install(dest, source, env):
 
 env1 = Environment()
 env1.Append(BUILDERS={'Cat':Builder(action=cat)})
-env3 = env1.Copy(INSTALL = my_install)
+env3 = env1.Clone(INSTALL = my_install)
 
 t = env1.Cat(target='f1.out', source='f1.in')
 env1.Install(dir='export', source=t)
@@ -74,7 +74,7 @@ Install(dir='export', source=t)
 t = env3.Cat(target='f3.out', source='f3.in')
 env3.Install(dir='export', source=t)
 
-env4 = env1.Copy(EXPORT='export', SUBDIR='sub')
+env4 = env1.Clone(EXPORT='export', SUBDIR='sub')
 t = env4.Cat(target='sub/f4.out', source='sub/f4.in')
 env4.Install(dir='$EXPORT', source=r'%(_SUBDIR_f4_out)s')
 
index 5342a484051a187e4477437fcb6d8ae87dd5cee1..f0951c62bca4bc5be4e8420ce83a8c8c728ae162 100644 (file)
@@ -150,7 +150,7 @@ foo = Environment(tools = ['javac', 'jar'],
                   JAVAC = r'%(where_javac)s',
                   JAR = r'%(where_jar)s')
 jar = foo.Dictionary('JAR')
-bar = foo.Copy(JAR = r'%(_python_)s wrapper.py ' + jar)
+bar = foo.Clone(JAR = r'%(_python_)s wrapper.py ' + jar)
 foo.Java(target = 'classes', source = 'com/sub/foo')
 bar.Java(target = 'classes', source = 'com/sub/bar')
 foo.Jar(target = 'foo', source = 'classes/com/sub/foo')
index b5fb3f8685a33f9e02dcc1ec9af2747281ab7453..7c063245d084def18ebe03df6cfab4483a0170f1 100644 (file)
@@ -116,7 +116,7 @@ test.write('SConstruct', """
 foo = Environment(tools = ['javac'],
                   JAVAC = r'%(where_javac)s')
 javac = foo.Dictionary('JAVAC')
-bar = foo.Copy(JAVAC = r'%(_python_)s wrapper.py ' + javac)
+bar = foo.Clone(JAVAC = r'%(_python_)s wrapper.py ' + javac)
 foo.Java(target = 'class1', source = 'com/sub/foo')
 bar.Java(target = 'class2', source = 'com/sub/bar')
 foo.Java(target = 'class3', source = ['src1', 'src2'])
index 9901764d9659a47960b89f6af82ffabad1a83506..15adf34f7f13710e98b13739a0cf95dafe09d951 100644 (file)
@@ -126,7 +126,7 @@ foo = Environment(tools = ['javac', 'javah'],
                   JAVAC = r'%(where_javac)s',
                   JAVAH = r'%(where_javah)s')
 javah = foo.Dictionary('JAVAH')
-bar = foo.Copy(JAVAH = r'%(_python_)s wrapper.py ' + javah)
+bar = foo.Clone(JAVAH = r'%(_python_)s wrapper.py ' + javah)
 foo.Java(target = 'class1', source = 'com/sub/foo')
 bar_classes = bar.Java(target = 'class2', source = 'com/sub/bar')
 foo_classes = foo.Java(target = 'class3', source = 'src')
index bb098e78e9923409fa2fd93032a1488a355dee74..a66f885a9babedcfbf30fa6ffa0965085ab26c5a 100644 (file)
@@ -128,7 +128,7 @@ foo.RMIC(target = 'outdir1',
           JAVACLASSDIR = 'class1')
 
 rmic = foo.Dictionary('RMIC')
-bar = foo.Copy(RMIC = r'%(_python_)s wrapper.py ' + rmic)
+bar = foo.Clone(RMIC = r'%(_python_)s wrapper.py ' + rmic)
 bar_classes = bar.Java(target = 'class2', source = 'com/sub/bar')
 # XXX This is kind of a Python brute-force way to do what Ant
 # does with its "excludes" attribute.  We should probably find
index ff3e0ca15bcc5894df833bda887525bcf8ebf0a9..17a0f02a6bb45ee2bb3ff309a6360a0731aba386 100644 (file)
@@ -83,7 +83,7 @@ if %(_E)s:
 foo.SharedLibrary(target = 'foo', source = 'foo%(_obj)s')
 bar.SharedLibrary(target = 'bar', source = 'bar%(_obj)s')
 
-fooMain = foo.Copy(LIBS='foo', LIBPATH='.')
+fooMain = foo.Clone(LIBS='foo', LIBPATH='.')
 foo_obj = fooMain.Object(target='foomain', source='main.c')
 fooMain.Program(target='fooprog', source=foo_obj)
 
index 312df4434257640be08f554b0bbb003bf8d0c662..dc96317a2acbf90238646e907e41745ebe7db813 100644 (file)
@@ -42,7 +42,7 @@ test.write('SConscript', """\
 Import("env")
 env.Append(CPPDEFINES = ['FOOBAZ'])
                                                                                 
-copy = env.Copy()
+copy = env.Clone()
 copy.Append(CPPDEFINES = ['MYLIB_IMPL'])
                                                                                 
 copy.SharedLibrary(
index de8daa1384893130e8a1f28a6242fd26df06e71d..5bf173a51d9be14769fab9a5287370b59f368ce1 100644 (file)
@@ -36,11 +36,11 @@ test.Qt_dummy_installation('qt')
 
 test.write('SConstruct', """\
 orig = Environment()
-env = orig.Copy(QTDIR = r'%s',
-                QT_LIB = r'%s',
-                QT_MOC = r'%s',
-                QT_UIC = r'%s',
-                tools=['qt'])
+env = orig.Clone(QTDIR = r'%s',
+                 QT_LIB = r'%s',
+                 QT_MOC = r'%s',
+                 QT_UIC = r'%s',
+                 tools=['qt'])
 env.Program('main', 'main.cpp', CPPDEFINES=['FOO'], LIBS=[])
 """ % (test.QT, test.QT_LIB, test.QT_MOC, test.QT_UIC))
 
index ef0b29240fa247d4fd31d329e17d5241c522f19f..336aa1363e4a9d23a28c5922a2cefa8bce948e4c 100644 (file)
@@ -50,7 +50,7 @@ test.Qt_create_SConstruct('SConstruct')
 
 test.write('SConscript', """\
 Import("env")
-env = env.Copy(tools=['qt'])
+env = env.Clone(tools=['qt'])
 env.Program('main', 'main.cpp', CPPDEFINES=['FOO'], LIBS=[])
 """)
 
index 0fb1da4b4be9fde15e54f1310deffa60b34711cf..ed995a93698aab55c8392990e33e2dbf54dc9b8f 100644 (file)
@@ -73,7 +73,7 @@ test.write('SConstruct', """
 env = Environment(tools=['default', 'swig'], SWIG = r'%(_python_)s myswig.py')
 env.Program(target = 'test1', source = 'test1.i')
 env.CFile(target = 'test2', source = 'test2.i')
-env.Copy(SWIGFLAGS = '-c++').Program(target = 'test3', source = 'test3.i')
+env.Clone(SWIGFLAGS = '-c++').Program(target = 'test3', source = 'test3.i')
 """ % locals())
 
 test.write('test1.i', r"""
@@ -151,7 +151,7 @@ foo = Environment(SWIGFLAGS='-python',
                   )
 
 swig = foo.Dictionary('SWIG')
-bar = foo.Copy(SWIG = r'%(_python_)s wrapper.py ' + swig)
+bar = foo.Clone(SWIG = r'%(_python_)s wrapper.py ' + swig)
 foo.LoadableModule(target = 'foo', source = ['foo.c', 'foo.i'])
 bar.LoadableModule(target = 'bar', source = ['bar.c', 'bar.i'])
 """ % locals())
@@ -258,7 +258,7 @@ foo = Environment(SWIGFLAGS='-python',
                   )
 
 swig = foo.Dictionary('SWIG')
-bar = foo.Copy(SWIG = r'%(_python_)s wrapper.py ' + swig)
+bar = foo.Clone(SWIG = r'%(_python_)s wrapper.py ' + swig)
 foo.CFile(target = 'dependent', source = ['dependent.i'])
 """ % locals())
 
index 09c5680bb1f2ec938334d64094ae6b21de0548fb..16f3d196bae143d929957faabed6b8f6e013d30a 100644 (file)
@@ -97,7 +97,7 @@ env.Command('foo', 'foo.k', r'%(_python_)s build.py $SOURCES $TARGET')
 ##########################################################
 # Test resetting the environment scanners (and specifying as a list).
 
-env2 = env.Copy()
+env2 = env.Clone()
 env2.Append(SCANNERS = [k2scan])
 env2.Command('junk', 'junk.k2', r'%(_python_)s build.py $SOURCES $TARGET')
 
index 36f35f630caedcaeef9b0202dddbecedb031284a..a88303f576079052d396e62492e12a39a9a71160 100644 (file)
@@ -184,12 +184,12 @@ test.write(['src', 'SConscript'], """\
 import Mylib
 Import("env")
 
-#env = env.Copy()    # Yes, clobber intentionally
+#env = env.Clone()    # Yes, clobber intentionally
 #Make environment changes, such as: Mylib.AddCFlags(env, "-g -D_TEST")
 #Mylib.Subdirs(env, "lib_a lib_b lib_mergej prog_x")
 Mylib.Subdirs(env, "lib_geng")
 
-env = env.Copy()    # Yes, clobber intentionally
+env = env.Clone()    # Yes, clobber intentionally
 # --- End SConscript boilerplate ---
 
 """)
@@ -201,11 +201,11 @@ import sys
 import Mylib
 Import("env")
 
-#env = env.Copy()    # Yes, clobber intentionally
+#env = env.Clone()    # Yes, clobber intentionally
 #Make environment changes, such as: Mylib.AddCFlags(env, "-g -D_TEST")
 #Mylib.Subdirs(env, "foo_dir")
 
-env = env.Copy()    # Yes, clobber intentionally
+env = env.Clone()    # Yes, clobber intentionally
 # --- End SConscript boilerplate ---
 
 Mylib.AddCFlags(env, "-DGOOFY_DEMO")
@@ -215,7 +215,7 @@ Mylib.AddIncludeDirs(env, ".")
 # On Windows, it's import to use the original test environment
 # when we invoke SCons recursively.
 import os
-recurse_env = env.Copy()
+recurse_env = env.Clone()
 recurse_env["ENV"] = os.environ
 
 # Icky code to set up process environment for "make"
index 36a9195fe09927a176b21371f2b760880f3997a4..b85f8ecba2ca66073cbe830af2ae0d3b5d70e1f2 100644 (file)
@@ -131,7 +131,7 @@ def build(env, target, source):
     open(str(target[0]), 'wt').write(open(str(source[0]), 'rt').read())
 B = Builder(action = build)
 env = Environment(BUILDERS = { 'B' : B })
-env2 = env.Copy()
+env2 = env.Clone()
 env2.SourceSignatures('MD5')
 env.B(target = 'f5.out', source = 'f5.in')
 env.B(target = 'f6.out', source = 'f6.in')
index b887038652750c04e529fa1f8bbf6a842dc2ed12..6df1daf4acbd5882abc086aa868cadf7b7f0ad5e 100644 (file)
@@ -59,7 +59,7 @@ env = Environment(LATEX = r'%(_python_)s mylatex.py',
                   LATEXFLAGS = '-x',
                   tools=['latex'])
 env.DVI(target = 'test1.dvi', source = 'test1.ltx')
-env.Copy(LATEXFLAGS = '-t').DVI(target = 'test2.dvi', source = 'test2.latex')
+env.Clone(LATEXFLAGS = '-t').DVI(target = 'test2.dvi', source = 'test2.latex')
 """ % locals())
 
 test.write('test1.ltx', r"""This is a .ltx test.
index a3948fe8ba6d0806594d3b9e840d192ac492fb91..0ab76a1ea11ba07aaf9ce7f5e8322dac4cf9e77f 100644 (file)
@@ -59,7 +59,7 @@ env = Environment(PDFLATEX = r'%(_python_)s mypdflatex.py',
                   PDFLATEXFLAGS = '-x',
                   tools=['pdflatex'])
 env.PDF(target = 'test1.pdf', source = 'test1.ltx')
-env.Copy(PDFLATEXFLAGS = '-t').PDF(target = 'test2.pdf', source = 'test2.latex')
+env.Clone(PDFLATEXFLAGS = '-t').PDF(target = 'test2.pdf', source = 'test2.latex')
 """ % locals())
 
 test.write('test1.ltx', r"""This is a .ltx test.
index 11dee8ad981d57ab571e6e65e311688d3a4d282a..c3b506b596974048a2378171333d51a216ec049f 100644 (file)
@@ -43,7 +43,7 @@ env['BUILDERS']['Copy2'] = Builder(action=copy2)
 env.Copy2('foo.mid', 'foo.in')
 env.Copy1('foo.out', 'foo.mid')
 
-env2 = env.Copy()
+env2 = env.Clone()
 env2.TargetSignatures('build')
 env2.Copy2('bar.mid', 'bar.in')
 env2.Copy1('bar.out', 'bar.mid')
@@ -80,7 +80,7 @@ env['BUILDERS']['Copy2'] = Builder(action=copy2)
 env.Copy2('foo.mid', 'foo.in')
 env.Copy1('foo.out', 'foo.mid')
 
-env2 = env.Copy()
+env2 = env.Clone()
 env2.TargetSignatures('build')
 env2.Copy2('bar.mid', 'bar.in')
 env2.Copy1('bar.out', 'bar.mid')
index c8b8df453cda1a1b3cdd84aa049f23cb32fa042b..8bcb1f768b55d941bdf0ded6e1abb1207069928e 100644 (file)
@@ -197,7 +197,7 @@ def build(env, target, source):
 
 B = Builder(action=build, multi=1)
 env = Environment(BUILDERS = { 'B' : B })
-env2 = env.Copy(DIFFERENT_VARIABLE = 'true')
+env2 = env.Clone(DIFFERENT_VARIABLE = 'true')
 env.B(target = 'file5.out', source = 'file5a.in')
 env2.B(target = 'file5.out', source = 'file5b.in')
 """)
@@ -227,7 +227,7 @@ def build(env, target, source):
 
 B = Builder(action=Action(build, varlist=['XXX']), multi=1)
 env = Environment(BUILDERS = { 'B' : B }, XXX = 'foo')
-env2 = env.Copy(XXX = 'var')
+env2 = env.Clone(XXX = 'var')
 env.B(target = 'file6.out', source = 'file6a.in')
 env2.B(target = 'file6.out', source = 'file6b.in')
 """)
index 3553f4fcc06f388e35c38c8a07d79b4f072894a3..4b81e2595aa2176ce6fc2fc347508cd828e3381f 100644 (file)
@@ -112,7 +112,7 @@ def build(env, target, source):
 
 B = Builder(action=build, multi=1)
 env = Environment(BUILDERS = { 'B' : B })
-env2 = env.Copy(DIFFERENT_VARIABLE = 'true')
+env2 = env.Clone(DIFFERENT_VARIABLE = 'true')
 env.B(target = 'file1.out', source = 'file1a.in')
 env2.B(target = 'file1.out', source = 'file1b.in')
 """)
index d94a956ea066cc6a32a2b36ccf978048bf47cf5a..9612560c9cb4c27f436af563f81dd52c1e03190a 100644 (file)
@@ -86,7 +86,7 @@ test.write(['work1', 'SConstruct'], """
 SConsignFile(None)
 env1 = Environment(PROGSUFFIX = '.exe', OBJSUFFIX = '.obj')
 env1.Program('sub1/hello.c')
-env2 = env1.Copy(CPPPATH = ['sub2'])
+env2 = env1.Clone(CPPPATH = ['sub2'])
 env2.Program('sub2/hello.c')
 """)
 
@@ -251,7 +251,7 @@ SourceSignatures('timestamp')
 TargetSignatures('content')
 env1 = Environment(PROGSUFFIX = '.exe', OBJSUFFIX = '.obj')
 env1.Program('sub1/hello.c')
-env2 = env1.Copy(CPPPATH = ['sub2'])
+env2 = env1.Clone(CPPPATH = ['sub2'])
 env2.Program('sub2/hello.c')
 """)
 
@@ -282,7 +282,7 @@ test.write(['work2', 'SConstruct'], """
 SConsignFile()
 env1 = Environment(PROGSUFFIX = '.exe', OBJSUFFIX = '.obj')
 env1.Program('sub1/hello.c')
-env2 = env1.Copy(CPPPATH = ['sub2'])
+env2 = env1.Clone(CPPPATH = ['sub2'])
 env2.Program('sub2/hello.c')
 """)
 
@@ -510,7 +510,7 @@ SourceSignatures('timestamp')
 TargetSignatures('content')
 env1 = Environment(PROGSUFFIX = '.exe', OBJSUFFIX = '.obj')
 env1.Program('sub1/hello.c')
-env2 = env1.Copy(CPPPATH = ['sub2'])
+env2 = env1.Clone(CPPPATH = ['sub2'])
 env2.Program('sub2/hello.c')
 """)
 
index ac549f6c9ee4082089d015821025ace636b5d2b8..7c2e510c666cb13ef389859b13b5a4c60852f9d8 100644 (file)
@@ -59,7 +59,7 @@ def subrevision(target, source ,env):
 SubRevision = Action(subrevision)
 
 env=Environment()
-content_env=env.Copy()
+content_env=env.Clone()
 content_env.TargetSignatures('content')
 content_env.Command('revision.in', [], '%(_python_)s getrevision > $TARGET')
 content_env.AlwaysBuild('revision.in')
index 55b70fdfd8a79d67ac3e7d6e883d1905f868f02c..7e08f8a43615e614ba4d394c3c87a6280ce9d0a8 100644 (file)
@@ -89,7 +89,7 @@ print "env0['TOOL_SCCS1'] =", env0.get('TOOL_SCCS1')
 print "env0['TOOL_SCCS2'] =", env0.get('TOOL_SCCS2')
 
 base = Environment(tools=[], toolpath=['tools'])
-derived = base.Copy(tools=['bar'])
+derived = base.Clone(tools=['bar'])
 print "derived['TOOL_BAR'] =", derived.get('TOOL_BAR')
 """)