[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23016] branches/blender2.5/blender/scons: == SCons ==

Nathan Letwory jesterking at letwory.net
Sat Sep 5 04:30:44 CEST 2009


Revision: 23016
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23016
Author:   jesterking
Date:     2009-09-05 04:30:42 +0200 (Sat, 05 Sep 2009)

Log Message:
-----------
== SCons ==
* update SCons to version 1.2.0.d20090223

Modified Paths:
--------------
    branches/blender2.5/blender/scons/scons-LICENSE
    branches/blender2.5/blender/scons/scons-README
    branches/blender2.5/blender/scons/scons-time.py
    branches/blender2.5/blender/scons/scons.py
    branches/blender2.5/blender/scons/sconsign.py

Added Paths:
-----------
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Action.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Builder.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/CacheDir.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Conftest.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Debug.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Defaults.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Environment.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Errors.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Executor.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Job.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Memoize.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Node/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Node/Alias.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Node/FS.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Node/Python.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Node/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/BoolOption.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/EnumOption.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/ListOption.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/PackageOption.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/PathOption.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Options/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/PathList.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/aix.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/cygwin.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/darwin.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/hpux.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/irix.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/os2.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/posix.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/sunos.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Platform/win32.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/SConf.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/SConsign.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/C.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/D.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/Dir.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/Fortran.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/IDL.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/LaTeX.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/Prog.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/RC.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Scanner/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Script/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Script/Interactive.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Script/Main.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Script/SConsOptions.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Script/SConscript.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Script/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Sig.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Subst.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Taskmaster.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/386asm.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/BitKeeper.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/CVS.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/FortranCommon.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/JavaCommon.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/MSCommon/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/MSCommon/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/MSCommon/common.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/MSCommon/netframework.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/MSCommon/sdk.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/MSCommon/vs.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/Perforce.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/PharLapCommon.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/RCS.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/SCCS.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/Subversion.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/aixc++.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/aixcc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/aixf77.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/aixlink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/applelink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/ar.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/as.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/bcc32.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/c++.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/cc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/cvf.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/default.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/dmd.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/dvi.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/dvipdf.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/dvips.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/f77.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/f90.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/f95.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/filesystem.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/fortran.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/g++.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/g77.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/gas.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/gcc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/gfortran.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/gnulink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/gs.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/hpc++.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/hpcc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/hplink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/icc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/icl.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/ifl.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/ifort.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/ilink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/ilink32.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/install.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/intelc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/jar.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/javac.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/javah.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/latex.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/lex.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/link.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/linkloc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/m4.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/masm.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/midl.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/mingw.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/mslib.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/mslink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/mssdk.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/msvc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/msvs.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/mwcc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/mwld.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/nasm.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/ipk.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/msi.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/rpm.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/src_tarbz2.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/src_targz.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/src_zip.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/tarbz2.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/targz.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/packaging/zip.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/pdf.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/pdflatex.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/pdftex.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/qt.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/rmic.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/rpcgen.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/rpm.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sgiar.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sgic++.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sgicc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sgilink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sunar.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sunc++.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/suncc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sunf77.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sunf90.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sunf95.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/sunlink.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/swig.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/tar.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/tex.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/tlib.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/wix.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/yacc.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Tool/zip.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Util.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/BoolVariable.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/EnumVariable.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/ListVariable.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/PackageVariable.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/PathVariable.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Variables/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Warnings.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/__init__.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_UserString.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_hashlib.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_itertools.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_optparse.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_sets.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_sets15.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_shlex.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_subprocess.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/_scons_textwrap.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/compat/builtins.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/cpp.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/dblite.py
    branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/exitfuncs.py

Removed Paths:
-------------
    branches/blender2.5/blender/scons/scons-local-1.1.0/

Modified: branches/blender2.5/blender/scons/scons-LICENSE
===================================================================
--- branches/blender2.5/blender/scons/scons-LICENSE	2009-09-05 02:14:45 UTC (rev 23015)
+++ branches/blender2.5/blender/scons/scons-LICENSE	2009-09-05 02:30:42 UTC (rev 23016)
@@ -3,7 +3,7 @@
         This copyright and license do not apply to any other software
         with which this software may have been included.
 
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons Foundation
+Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the

Modified: branches/blender2.5/blender/scons/scons-README
===================================================================
--- branches/blender2.5/blender/scons/scons-README	2009-09-05 02:14:45 UTC (rev 23015)
+++ branches/blender2.5/blender/scons/scons-README	2009-09-05 02:30:42 UTC (rev 23016)
@@ -1,4 +1,4 @@
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
 
                  SCons - a software construction tool
 

Added: branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Action.py
===================================================================
--- branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Action.py	                        (rev 0)
+++ branches/blender2.5/blender/scons/scons-local-1.2.0.d20090223/SCons/Action.py	2009-09-05 02:30:42 UTC (rev 23016)
@@ -0,0 +1,1240 @@
+"""SCons.Action
+
+This encapsulates information about executing any sort of action that
+can build one or more target Nodes (typically files) from one or more
+source Nodes (also typically files) given a specific Environment.
+
+The base class here is ActionBase.  The base class supplies just a few
+OO utility methods and some generic methods for displaying information
+about an Action in response to the various commands that control printing.
+
+A second-level base class is _ActionAction.  This extends ActionBase
+by providing the methods that can be used to show and perform an
+action.  True Action objects will subclass _ActionAction; Action
+factory class objects will subclass ActionBase.
+
+The heavy lifting is handled by subclasses for the different types of
+actions we might execute:
+
+    CommandAction
+    CommandGeneratorAction
+    FunctionAction
+    ListAction
+
+The subclasses supply the following public interface methods used by
+other modules:
+
+    __call__()
+        THE public interface, "calling" an Action object executes the
+        command or Python function.  This also takes care of printing
+        a pre-substitution command for debugging purposes.
+
+    get_contents()
+        Fetches the "contents" of an Action for signature calculation
+        plus the varlist.  This is what gets MD5 checksummed to decide
+        if a target needs to be rebuilt because its action changed.
+
+    genstring()
+        Returns a string representation of the Action *without*
+        command substitution, but allows a CommandGeneratorAction to
+        generate the right action based on the specified target,
+        source and env.  This is used by the Signature subsystem
+        (through the Executor) to obtain an (imprecise) representation
+        of the Action operation for informative purposes.
+
+
+Subclasses also supply the following methods for internal use within
+this module:
+
+    __str__()
+        Returns a string approximation of the Action; no variable
+        substitution is performed.
+
+    execute()
+        The internal method that really, truly, actually handles the
+        execution of a command or Python function.  This is used so
+        that the __call__() methods can take care of displaying any
+        pre-substitution representations, and *then* execute an action
+        without worrying about the specific Actions involved.
+
+    get_presig()
+        Fetches the "contents" of a subclass for signature calculation.
+        The varlist is added to this to produce the Action's contents.
+
+    strfunction()
+        Returns a substituted string representation of the Action.
+        This is used by the _ActionAction.show() command to display the
+        command/function that will be executed to generate the target(s).
+
+There is a related independent ActionCaller class that looks like a
+regular Action, and which serves as a wrapper for arbitrary functions
+that we want to let the user specify the arguments to now, but actually
+execute later (when an out-of-date check determines that it's needed to
+be executed, for example).  Objects of this class are returned by an
+ActionFactory class that provides a __call__() method as a convenient
+way for wrapping up the functions.
+
+"""
+
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
+#
+# 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__ = "src/engine/SCons/Action.py 4043 2009/02/23 09:06:45 scons"
+
+import cPickle
+import dis
+import os
+import re
+import string
+import sys
+import subprocess
+
+from SCons.Debug import logInstanceCreation
+import SCons.Errors
+import SCons.Executor
+import SCons.Util
+import SCons.Subst
+
+# we use these a lot, so try to optimize them
+is_String = SCons.Util.is_String
+is_List = SCons.Util.is_List
+
+class _null:
+    pass
+
+print_actions = 1
+execute_actions = 1
+print_actions_presub = 0
+
+def rfile(n):
+    try:
+        return n.rfile()
+    except AttributeError:
+        return n
+
+def default_exitstatfunc(s):
+    return s
+
+try:
+    SET_LINENO = dis.SET_LINENO
+    HAVE_ARGUMENT = dis.HAVE_ARGUMENT
+except AttributeError:
+    remove_set_lineno_codes = lambda x: x
+else:
+    def remove_set_lineno_codes(code):
+        result = []
+        n = len(code)
+        i = 0
+        while i < n:
+            c = code[i]
+            op = ord(c)
+            if op >= HAVE_ARGUMENT:
+                if op != SET_LINENO:
+                    result.append(code[i:i+3])
+                i = i+3
+            else:
+                result.append(c)
+                i = i+1
+        return string.join(result, '')
+
+strip_quotes = re.compile('^[\'"](.*)[\'"]$')
+
+
+def _callable_contents(obj):
+    """Return the signature contents of a callable Python object.
+    """
+    try:
+        # Test if obj is a method.
+        return _function_contents(obj.im_func)
+
+    except AttributeError:
+        try:
+            # Test if obj is a callable object.
+            return _function_contents(obj.__call__.im_func)
+
+        except AttributeError:
+            try:
+                # Test if obj is a code object.
+                return _code_contents(obj)
+
+            except AttributeError:
+                    # Test if obj is a function object.
+                    return _function_contents(obj)
+
+
+def _object_contents(obj):
+    """Return the signature contents of any Python object.
+
+    We have to handle the case where object contains a code object
+    since it can be pickled directly.
+    """
+    try:
+        # Test if obj is a method.
+        return _function_contents(obj.im_func)
+
+    except AttributeError:
+        try:
+            # Test if obj is a callable object.
+            return _function_contents(obj.__call__.im_func)
+
+        except AttributeError:
+            try:
+                # Test if obj is a code object.
+                return _code_contents(obj)
+
+            except AttributeError:
+                try:
+                    # Test if obj is a function object.
+                    return _function_contents(obj)
+
+                except AttributeError:
+                    # Should be a pickable Python object.
+                    try:
+                        return cPickle.dumps(obj)
+                    except (cPickle.PicklingError, TypeError):
+                        # This is weird, but it seems that nested classes
+                        # are unpickable. The Python docs say it should
+                        # always be a PicklingError, but some Python
+                        # versions seem to return TypeError.  Just do
+                        # the best we can.
+                        return str(obj)
+
+
+def _code_contents(code):
+    """Return the signature contents of a code object.
+
+    By providing direct access to the code object of the
+    function, Python makes this extremely easy.  Hooray!
+
+    Unfortunately, older versions of Python include line
+    number indications in the compiled byte code.  Boo!
+    So we remove the line number byte codes to prevent
+    recompilations from moving a Python function.
+    """
+
+    contents = []
+
+    # The code contents depends on the number of local variables
+    # but not their actual names.
+    contents.append("%s,%s" % (code.co_argcount, len(code.co_varnames)))
+    try:
+        contents.append(",%s,%s" % (len(code.co_cellvars), len(code.co_freevars)))
+    except AttributeError:
+        # Older versions of Python do not support closures.
+        contents.append(",0,0")
+
+    # The code contents depends on any constants accessed by the
+    # function. Note that we have to call _object_contents on each

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list