libv8 3.3.10.2 → 3.3.10.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +35 -7
- data/Rakefile +61 -20
- data/ext/libv8/extconf.rb +15 -0
- data/lib/libv8/scons/CHANGES.txt +231 -24
- data/lib/libv8/scons/LICENSE.txt +1 -1
- data/lib/libv8/scons/MANIFEST +1 -0
- data/lib/libv8/scons/PKG-INFO +1 -1
- data/lib/libv8/scons/README.txt +9 -9
- data/lib/libv8/scons/RELEASE.txt +77 -75
- data/lib/libv8/scons/engine/SCons/Action.py +22 -6
- data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
- data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
- data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
- data/lib/libv8/scons/engine/SCons/Defaults.py +24 -10
- data/lib/libv8/scons/engine/SCons/Environment.py +118 -19
- data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
- data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
- data/lib/libv8/scons/engine/SCons/Job.py +2 -2
- data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/FS.py +281 -121
- data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/__init__.py +6 -5
- data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/darwin.py +27 -3
- data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
- data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
- data/lib/libv8/scons/engine/SCons/SConsign.py +9 -3
- data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +5 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
- data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/Main.py +82 -11
- data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
- data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
- data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
- data/lib/libv8/scons/engine/SCons/Taskmaster.py +10 -2
- data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +19 -2
- data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +9 -6
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +29 -2
- data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
- data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/dmd.py +24 -7
- data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/dvips.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/f03.py +63 -0
- data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
- data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/install.py +57 -3
- data/lib/libv8/scons/engine/SCons/Tool/intelc.py +65 -25
- data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/jar.py +9 -3
- data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/latex.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/link.py +6 -5
- data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mingw.py +31 -10
- data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mslink.py +61 -9
- data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/msvc.py +21 -11
- data/lib/libv8/scons/engine/SCons/Tool/msvs.py +477 -59
- data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/rmic.py +9 -3
- data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/swig.py +6 -5
- data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/tex.py +96 -43
- data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/yacc.py +12 -2
- data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Util.py +3 -3
- data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
- data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
- data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
- data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
- data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
- data/lib/libv8/scons/engine/SCons/dblite.py +4 -1
- data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
- data/lib/libv8/scons/scons-time.1 +3 -3
- data/lib/libv8/scons/scons.1 +1209 -1203
- data/lib/libv8/scons/sconsign.1 +3 -3
- data/lib/libv8/scons/script/scons +22 -22
- data/lib/libv8/scons/script/scons-time +2 -2
- data/lib/libv8/scons/script/scons.bat +7 -4
- data/lib/libv8/scons/script/sconsign +21 -20
- data/lib/libv8/scons/setup.cfg +0 -1
- data/lib/libv8/scons/setup.py +38 -40
- data/lib/libv8/version.rb +4 -2
- data/libv8.gemspec +7 -2
- metadata +46 -67
data/lib/libv8/scons/LICENSE.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
1
|
+
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
data/lib/libv8/scons/MANIFEST
CHANGED
data/lib/libv8/scons/PKG-INFO
CHANGED
data/lib/libv8/scons/README.txt
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
SCons - a software construction tool
|
4
4
|
|
5
|
-
Version 2.0
|
5
|
+
Version 2.1.0
|
6
6
|
|
7
7
|
|
8
8
|
This is SCons, a tool for building software (and other files). SCons is
|
@@ -56,7 +56,7 @@ provided Python-standard setup script as follows:
|
|
56
56
|
|
57
57
|
By default, the above command will do the following:
|
58
58
|
|
59
|
-
-- Install the version-numbered "scons-2.0
|
59
|
+
-- Install the version-numbered "scons-2.1.0" and "sconsign-2.1.0"
|
60
60
|
scripts in the default system script directory (/usr/bin or
|
61
61
|
C:\Python*\Scripts, for example). This can be disabled by
|
62
62
|
specifying the "--no-version-script" option on the command
|
@@ -70,17 +70,17 @@ By default, the above command will do the following:
|
|
70
70
|
making it the default on your system.
|
71
71
|
|
72
72
|
On UNIX or Linux systems, you can have the "scons" and "sconsign"
|
73
|
-
scripts be hard links or symbolic links to the "scons-2.0
|
74
|
-
"sconsign-2.0
|
73
|
+
scripts be hard links or symbolic links to the "scons-2.1.0" and
|
74
|
+
"sconsign-2.1.0" scripts by specifying the "--hardlink-scons"
|
75
75
|
or "--symlink-scons" options on the command line.
|
76
76
|
|
77
|
-
-- Install "scons-2.0.
|
77
|
+
-- Install "scons-2.1.0.bat" and "scons.bat" wrapper scripts in the
|
78
78
|
Python prefix directory on Windows (C:\Python*, for example).
|
79
79
|
This can be disabled by specifying the "--no-install-bat" option
|
80
80
|
on the command line.
|
81
81
|
|
82
82
|
On UNIX or Linux systems, the "--install-bat" option may be
|
83
|
-
specified to have "scons-2.0.
|
83
|
+
specified to have "scons-2.1.0.bat" and "scons.bat" files
|
84
84
|
installed in the default system script directory, which is useful
|
85
85
|
if you want to install SCons in a shared file system directory
|
86
86
|
that can be used to execute SCons from both UNIX/Linux and
|
@@ -88,7 +88,7 @@ By default, the above command will do the following:
|
|
88
88
|
|
89
89
|
-- Install the SCons build engine (a Python module) in an
|
90
90
|
appropriate version-numbered SCons library directory
|
91
|
-
(/usr/lib/scons-2.0
|
91
|
+
(/usr/lib/scons-2.1.0 or C:\Python*\scons-2.1.0, for example).
|
92
92
|
See below for more options related to installing the build
|
93
93
|
engine library.
|
94
94
|
|
@@ -239,5 +239,5 @@ With plenty of help from the SCons Development team:
|
|
239
239
|
Greg Spencer
|
240
240
|
Christoph Wiedemann
|
241
241
|
|
242
|
-
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
243
|
-
src/README.txt
|
242
|
+
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
243
|
+
src/README.txt 5357 2011/09/09 21:31:03 bdeegan
|
data/lib/libv8/scons/RELEASE.txt
CHANGED
@@ -1,98 +1,100 @@
|
|
1
|
-
A new SCons release, 2.0.
|
1
|
+
A new SCons checkpoint release, 2.1.0.final.0, is now available
|
2
2
|
on the SCons download page:
|
3
3
|
|
4
4
|
http://www.scons.org/download.php
|
5
5
|
|
6
|
-
|
7
|
-
versions prior to 2.4 and streamline the SCons code base using more
|
8
|
-
modern python idioms.
|
9
|
-
|
10
|
-
Here is a summary of the changes since 1.3:
|
6
|
+
Here is a summary of the changes since 2.0:
|
11
7
|
|
12
8
|
NEW FUNCTIONALITY
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
DEPRECATED FUNCTIONALITY
|
17
|
-
|
18
|
-
- All features or usages deprecated in 1.3 should have been removed.
|
19
|
-
Uses of formerly-deprecated features should get an error.
|
20
|
-
|
21
|
-
- The BuildDir() method and the build_dir option now get warnings.
|
10
|
+
- SCons can now automatically embed manifests in Windows executables
|
11
|
+
and DLLs, by setting WINDOWS_EMBED_MANIFEST in the environment.
|
22
12
|
|
23
|
-
|
24
|
-
|
13
|
+
- SCons now searches for site_scons dirs in several system-wide
|
14
|
+
and per-user locations, in addition to the SConstruct top dir.
|
15
|
+
This should enable much easier use of third-party (non-core)
|
16
|
+
Tools.
|
25
17
|
|
26
18
|
CHANGED/ENHANCED EXISTING FUNCTIONALITY
|
27
19
|
|
28
|
-
|
29
|
-
factory functions will have their targets rebuilt when upgrading
|
30
|
-
from any pre-2.0 release:
|
20
|
+
- scons --version now prints the path to the SCons package in use
|
31
21
|
|
32
|
-
|
33
|
-
|
34
|
-
Delete()
|
35
|
-
Mkdir()
|
36
|
-
Move()
|
37
|
-
Touch()
|
22
|
+
- List modifications to existing features, where the previous behavior
|
23
|
+
wouldn't actually be considered a bug
|
38
24
|
|
39
|
-
|
40
|
-
implements these functions has been changed to a new-style Python
|
41
|
-
class, and that changes the Python byte code and therefore the
|
42
|
-
build signature of the functions.)
|
25
|
+
- Add initial support for VS/VC 2010
|
43
26
|
|
44
27
|
FIXES
|
45
28
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
29
|
+
- Windows resource compiler (RC) scanner now handles DOS line endings
|
30
|
+
- Visual Studio project generation now works when CPPPATH contains Dir nodes
|
31
|
+
- Visual Studio projects are regenerated when CPPPATH or CPPDEFINES change
|
32
|
+
NOTE: this will cause all MSVS projects to be regenerated with this version.
|
33
|
+
- Passing MSVC_BATCH=False works now (treated same as 0)
|
34
|
+
- Long compile lines no longer break MSVC_BATCH mode
|
35
|
+
- RPATH is now in LINKCOM rather than LINKFLAGS, so resetting
|
36
|
+
LINKFLAGS doesn't kill RPATH
|
37
|
+
- Precompiled headers on Windows no longer break when used with
|
38
|
+
variant dirs containing spaces.
|
39
|
+
- Delete can now delete symlinks to directories and broken symlinks
|
40
|
+
- CPPDEFINES containing dictionaries now work better.
|
41
|
+
- A problem with using implicit-cache and removing dependencies on
|
42
|
+
disk is corrected.
|
43
|
+
- A problem with FS Entries which are dirs and have builders
|
44
|
+
is corrected.
|
45
|
+
- A problem with Install() of a dir when the dest dir exists
|
46
|
+
is corrected.
|
47
|
+
- Windows subprocess output should now be more reliable.
|
48
|
+
- The users guide and man page have various fixes.
|
49
|
+
- Appending to default $*FLAGS in a copied environment
|
50
|
+
now works properly.
|
51
|
+
- LaTeX scanner is improved for broken lines or embedded spaces.
|
52
|
+
- Windows UNC paths (\\SERVER\SHARE\dir) now work much better.
|
63
53
|
|
64
54
|
IMPROVEMENTS
|
65
55
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
56
|
+
- ParseFlags now supports -std=c++0x and related CXXFLAGS
|
57
|
+
- ParseFlags now supports -dylib_file from pkgconfig
|
58
|
+
- New debugging options to print unlink/relinking of variant files
|
59
|
+
(--debug=duplicate) and preparation of targets (--debug=prepare).
|
60
|
+
- SCons can now generate MSVS 9.0 and 10.0 Projects and Solutions.
|
61
|
+
- MSVS Solution generation is improved.
|
62
|
+
- Fortran 03 is supported (preliminary)
|
63
|
+
- .sx files are now treated as assembly sources.
|
64
|
+
- site_scons/site_init.py is now treated as a proper module
|
65
|
+
with __doc__, __file__ and __name__.
|
66
|
+
- TeX command strings now work on Windows when the new dir is
|
67
|
+
on a different drive letter.
|
68
|
+
- DMD version 2 is supported (using the phobos2 library)
|
69
|
+
- New --debug=prepare option shows each target as it's prepared
|
70
|
+
for building; can help when you don't know why a target isn't
|
71
|
+
being built.
|
78
72
|
|
79
73
|
DOCUMENTATION
|
80
74
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
75
|
+
- Added new getting started section
|
76
|
+
|
77
|
+
Thanks to
|
78
|
+
Dirk Baechle,
|
79
|
+
Vincent Beffara,
|
80
|
+
Grzegorz Bizoń,
|
81
|
+
Jean-François Colson,
|
82
|
+
Bauke Conijn,
|
83
|
+
Bill Deegan,
|
84
|
+
Ken Deeter,
|
85
|
+
Luca Falavigna,
|
86
|
+
Alexander Goomenyuk,
|
87
|
+
Justin Gullingsrud,
|
88
|
+
Steven Knight,
|
89
|
+
Arve Knudsen,
|
90
|
+
Jean-Baptiste Lab,
|
91
|
+
Rob Managan,
|
92
|
+
Gary Oberbrunner,
|
93
|
+
Evgeny Podjachev,
|
94
|
+
Sohail Somani,
|
95
|
+
Anatoly Techtonik,
|
96
|
+
Allen Weeks,
|
97
|
+
Russel Winder,
|
98
|
+
Joe Zuntz
|
99
|
+
for their contributions to this release.
|
96
100
|
|
97
|
-
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
98
|
-
src/RELEASE.txt 5023 2010/06/14 22:05:46 scons
|
@@ -76,7 +76,7 @@ way for wrapping up the functions.
|
|
76
76
|
|
77
77
|
"""
|
78
78
|
|
79
|
-
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
79
|
+
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
80
80
|
#
|
81
81
|
# Permission is hereby granted, free of charge, to any person obtaining
|
82
82
|
# a copy of this software and associated documentation files (the
|
@@ -97,7 +97,7 @@ way for wrapping up the functions.
|
|
97
97
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
98
98
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
99
99
|
|
100
|
-
__revision__ = "src/engine/SCons/Action.py
|
100
|
+
__revision__ = "src/engine/SCons/Action.py 5357 2011/09/09 21:31:03 bdeegan"
|
101
101
|
|
102
102
|
import SCons.compat
|
103
103
|
|
@@ -300,8 +300,10 @@ def _actionAppend(act1, act2):
|
|
300
300
|
# a single ListAction.
|
301
301
|
a1 = Action(act1)
|
302
302
|
a2 = Action(act2)
|
303
|
-
if a1 is None
|
304
|
-
|
303
|
+
if a1 is None:
|
304
|
+
return a2
|
305
|
+
if a2 is None:
|
306
|
+
return a1
|
305
307
|
if isinstance(a1, ListAction):
|
306
308
|
if isinstance(a2, ListAction):
|
307
309
|
return ListAction(a1.list + a2.list)
|
@@ -385,6 +387,10 @@ def _do_create_action(act, kw):
|
|
385
387
|
# The list of string commands may include a LazyAction, so we
|
386
388
|
# reprocess them via _do_create_list_action.
|
387
389
|
return _do_create_list_action(commands, kw)
|
390
|
+
# Catch a common error case with a nice message:
|
391
|
+
if isinstance(act, int) or isinstance(act, float):
|
392
|
+
raise TypeError("Don't know how to create an Action from a number (%s)"%act)
|
393
|
+
# Else fail silently (???)
|
388
394
|
return None
|
389
395
|
|
390
396
|
def _do_create_list_action(act, kw):
|
@@ -497,7 +503,18 @@ class _ActionAction(ActionBase):
|
|
497
503
|
SCons.Util.AddMethod(self, batch_key, 'batch_key')
|
498
504
|
|
499
505
|
def print_cmd_line(self, s, target, source, env):
|
500
|
-
sys.stdout
|
506
|
+
# In python 3, and in some of our tests, sys.stdout is
|
507
|
+
# a String io object, and it takes unicode strings only
|
508
|
+
# In other cases it's a regular Python 2.x file object
|
509
|
+
# which takes strings (bytes), and if you pass those a
|
510
|
+
# unicode object they try to decode with 'ascii' codec
|
511
|
+
# which fails if the cmd line has any hi-bit-set chars.
|
512
|
+
# This code assumes s is a regular string, but should
|
513
|
+
# work if it's unicode too.
|
514
|
+
try:
|
515
|
+
sys.stdout.write(unicode(s + "\n"))
|
516
|
+
except UnicodeDecodeError:
|
517
|
+
sys.stdout.write(s + "\n")
|
501
518
|
|
502
519
|
def __call__(self, target, source, env,
|
503
520
|
exitstatfunc=_null,
|
@@ -654,7 +671,6 @@ def _subproc(scons_env, cmd, error = 'ignore', **kw):
|
|
654
671
|
kw['env'] = new_env
|
655
672
|
|
656
673
|
try:
|
657
|
-
#FUTURE return subprocess.Popen(cmd, **kw)
|
658
674
|
return subprocess.Popen(cmd, **kw)
|
659
675
|
except EnvironmentError, e:
|
660
676
|
if error == 'raise': raise
|
@@ -76,7 +76,7 @@ There are the following methods for internal use within this module:
|
|
76
76
|
"""
|
77
77
|
|
78
78
|
#
|
79
|
-
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
79
|
+
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
80
80
|
#
|
81
81
|
# Permission is hereby granted, free of charge, to any person obtaining
|
82
82
|
# a copy of this software and associated documentation files (the
|
@@ -97,7 +97,7 @@ There are the following methods for internal use within this module:
|
|
97
97
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
98
98
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
99
99
|
|
100
|
-
__revision__ = "src/engine/SCons/Builder.py
|
100
|
+
__revision__ = "src/engine/SCons/Builder.py 5357 2011/09/09 21:31:03 bdeegan"
|
101
101
|
|
102
102
|
import collections
|
103
103
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
2
|
+
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -21,7 +21,7 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#
|
23
23
|
|
24
|
-
__revision__ = "src/engine/SCons/CacheDir.py
|
24
|
+
__revision__ = "src/engine/SCons/CacheDir.py 5357 2011/09/09 21:31:03 bdeegan"
|
25
25
|
|
26
26
|
__doc__ = """
|
27
27
|
CacheDir support
|
@@ -6,7 +6,7 @@ needed by most users.
|
|
6
6
|
"""
|
7
7
|
|
8
8
|
#
|
9
|
-
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
9
|
+
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
10
10
|
#
|
11
11
|
# Permission is hereby granted, free of charge, to any person obtaining
|
12
12
|
# a copy of this software and associated documentation files (the
|
@@ -28,7 +28,7 @@ needed by most users.
|
|
28
28
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
29
29
|
#
|
30
30
|
|
31
|
-
__revision__ = "src/engine/SCons/Debug.py
|
31
|
+
__revision__ = "src/engine/SCons/Debug.py 5357 2011/09/09 21:31:03 bdeegan"
|
32
32
|
|
33
33
|
import os
|
34
34
|
import sys
|
@@ -10,7 +10,7 @@ from distutils.msvccompiler.
|
|
10
10
|
"""
|
11
11
|
|
12
12
|
#
|
13
|
-
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
13
|
+
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
14
14
|
#
|
15
15
|
# Permission is hereby granted, free of charge, to any person obtaining
|
16
16
|
# a copy of this software and associated documentation files (the
|
@@ -33,7 +33,7 @@ from distutils.msvccompiler.
|
|
33
33
|
#
|
34
34
|
from __future__ import division
|
35
35
|
|
36
|
-
__revision__ = "src/engine/SCons/Defaults.py
|
36
|
+
__revision__ = "src/engine/SCons/Defaults.py 5357 2011/09/09 21:31:03 bdeegan"
|
37
37
|
|
38
38
|
|
39
39
|
import os
|
@@ -199,14 +199,15 @@ def delete_func(dest, must_exist=0):
|
|
199
199
|
dest = [dest]
|
200
200
|
for entry in dest:
|
201
201
|
entry = str(entry)
|
202
|
-
|
202
|
+
# os.path.exists returns False with broken links that exist
|
203
|
+
entry_exists = os.path.exists(entry) or os.path.islink(entry)
|
204
|
+
if not entry_exists and not must_exist:
|
203
205
|
continue
|
204
|
-
|
205
|
-
|
206
|
-
continue
|
207
|
-
else:
|
206
|
+
# os.path.isdir returns True when entry is a link to a dir
|
207
|
+
if os.path.isdir(entry) and not os.path.islink(entry):
|
208
208
|
shutil.rmtree(entry, 1)
|
209
209
|
continue
|
210
|
+
os.unlink(entry)
|
210
211
|
|
211
212
|
def delete_strfunc(dest, must_exist=0):
|
212
213
|
return 'Delete(%s)' % get_paths_str(dest)
|
@@ -372,10 +373,23 @@ def processDefines(defs):
|
|
372
373
|
if SCons.Util.is_List(defs):
|
373
374
|
l = []
|
374
375
|
for d in defs:
|
375
|
-
if
|
376
|
-
|
377
|
-
|
376
|
+
if d is None:
|
377
|
+
continue
|
378
|
+
elif SCons.Util.is_List(d) or isinstance(d, tuple):
|
379
|
+
if len(d) >= 2:
|
380
|
+
l.append(str(d[0]) + '=' + str(d[1]))
|
381
|
+
else:
|
382
|
+
l.append(str(d[0]))
|
383
|
+
elif SCons.Util.is_Dict(d):
|
384
|
+
for macro,value in d.iteritems():
|
385
|
+
if value is not None:
|
386
|
+
l.append(str(macro) + '=' + str(value))
|
387
|
+
else:
|
388
|
+
l.append(str(macro))
|
389
|
+
elif SCons.Util.is_String(d):
|
378
390
|
l.append(str(d))
|
391
|
+
else:
|
392
|
+
raise SCons.Errors.UserError("DEFINE %s is not a list, dict, string or None."%repr(d))
|
379
393
|
elif SCons.Util.is_Dict(defs):
|
380
394
|
# The items in a dictionary are stored in random order, but
|
381
395
|
# if the order of the command-line options changes from
|
@@ -10,7 +10,7 @@ Environment
|
|
10
10
|
"""
|
11
11
|
|
12
12
|
#
|
13
|
-
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
13
|
+
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
14
14
|
#
|
15
15
|
# Permission is hereby granted, free of charge, to any person obtaining
|
16
16
|
# a copy of this software and associated documentation files (the
|
@@ -31,7 +31,7 @@ Environment
|
|
31
31
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
32
32
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
33
33
|
|
34
|
-
__revision__ = "src/engine/SCons/Environment.py
|
34
|
+
__revision__ = "src/engine/SCons/Environment.py 5357 2011/09/09 21:31:03 bdeegan"
|
35
35
|
|
36
36
|
|
37
37
|
import copy
|
@@ -649,6 +649,7 @@ class SubstitutionEnvironment(object):
|
|
649
649
|
'ASFLAGS' : SCons.Util.CLVar(''),
|
650
650
|
'CFLAGS' : SCons.Util.CLVar(''),
|
651
651
|
'CCFLAGS' : SCons.Util.CLVar(''),
|
652
|
+
'CXXFLAGS' : SCons.Util.CLVar(''),
|
652
653
|
'CPPDEFINES' : [],
|
653
654
|
'CPPFLAGS' : SCons.Util.CLVar(''),
|
654
655
|
'CPPPATH' : [],
|
@@ -723,6 +724,9 @@ class SubstitutionEnvironment(object):
|
|
723
724
|
append_next_arg_to = None
|
724
725
|
elif not arg[0] in ['-', '+']:
|
725
726
|
dict['LIBS'].append(self.fs.File(arg))
|
727
|
+
elif arg == '-dylib_file':
|
728
|
+
dict['LINKFLAGS'].append(arg)
|
729
|
+
append_next_arg_to = 'LINKFLAGS'
|
726
730
|
elif arg[:2] == '-L':
|
727
731
|
if arg[2:]:
|
728
732
|
dict['LIBPATH'].append(arg[2:])
|
@@ -766,16 +770,20 @@ class SubstitutionEnvironment(object):
|
|
766
770
|
dict['FRAMEWORKPATH'].append(arg[2:])
|
767
771
|
else:
|
768
772
|
append_next_arg_to = 'FRAMEWORKPATH'
|
769
|
-
elif arg
|
773
|
+
elif arg in ['-mno-cygwin',
|
774
|
+
'-pthread',
|
775
|
+
'-openmp',
|
776
|
+
'-fopenmp']:
|
770
777
|
dict['CCFLAGS'].append(arg)
|
771
778
|
dict['LINKFLAGS'].append(arg)
|
772
779
|
elif arg == '-mwindows':
|
773
780
|
dict['LINKFLAGS'].append(arg)
|
774
|
-
elif arg == '-pthread':
|
775
|
-
dict['CCFLAGS'].append(arg)
|
776
|
-
dict['LINKFLAGS'].append(arg)
|
777
781
|
elif arg[:5] == '-std=':
|
778
|
-
|
782
|
+
if arg[5:].find('++')!=-1:
|
783
|
+
key='CXXFLAGS'
|
784
|
+
else:
|
785
|
+
key='CFLAGS'
|
786
|
+
dict[key].append(arg)
|
779
787
|
elif arg[0] == '+':
|
780
788
|
dict['CCFLAGS'].append(arg)
|
781
789
|
dict['LINKFLAGS'].append(arg)
|
@@ -1146,12 +1154,17 @@ class Base(SubstitutionEnvironment):
|
|
1146
1154
|
# "continue" statements whenever we finish processing an item,
|
1147
1155
|
# but Python 1.5.2 apparently doesn't let you use "continue"
|
1148
1156
|
# within try:-except: blocks, so we have to nest our code.
|
1149
|
-
try:
|
1157
|
+
try:
|
1158
|
+
if key == 'CPPDEFINES' and SCons.Util.is_String(self._dict[key]):
|
1159
|
+
self._dict[key] = [self._dict[key]]
|
1150
1160
|
orig = self._dict[key]
|
1151
1161
|
except KeyError:
|
1152
1162
|
# No existing variable in the environment, so just set
|
1153
1163
|
# it to the new value.
|
1154
|
-
|
1164
|
+
if key == 'CPPDEFINES' and SCons.Util.is_String(val):
|
1165
|
+
self._dict[key] = [val]
|
1166
|
+
else:
|
1167
|
+
self._dict[key] = val
|
1155
1168
|
else:
|
1156
1169
|
try:
|
1157
1170
|
# Check if the original looks like a dictionary.
|
@@ -1188,8 +1201,13 @@ class Base(SubstitutionEnvironment):
|
|
1188
1201
|
# The original looks like a dictionary, so update it
|
1189
1202
|
# based on what we think the value looks like.
|
1190
1203
|
if SCons.Util.is_List(val):
|
1191
|
-
|
1192
|
-
orig
|
1204
|
+
if key == 'CPPDEFINES':
|
1205
|
+
orig = orig.items()
|
1206
|
+
orig += val
|
1207
|
+
self._dict[key] = orig
|
1208
|
+
else:
|
1209
|
+
for v in val:
|
1210
|
+
orig[v] = None
|
1193
1211
|
else:
|
1194
1212
|
try:
|
1195
1213
|
update_dict(val)
|
@@ -1251,8 +1269,39 @@ class Base(SubstitutionEnvironment):
|
|
1251
1269
|
self._dict[key].update(val)
|
1252
1270
|
elif SCons.Util.is_List(val):
|
1253
1271
|
dk = self._dict[key]
|
1254
|
-
if
|
1255
|
-
|
1272
|
+
if key == 'CPPDEFINES':
|
1273
|
+
tmp = []
|
1274
|
+
for i in val:
|
1275
|
+
if SCons.Util.is_List(i):
|
1276
|
+
if len(i) >= 2:
|
1277
|
+
tmp.append((i[0], i[1]))
|
1278
|
+
else:
|
1279
|
+
tmp.append((i[0],))
|
1280
|
+
elif SCons.Util.is_Tuple(i):
|
1281
|
+
tmp.append(i)
|
1282
|
+
else:
|
1283
|
+
tmp.append((i,))
|
1284
|
+
val = tmp
|
1285
|
+
if SCons.Util.is_Dict(dk):
|
1286
|
+
dk = dk.items()
|
1287
|
+
elif SCons.Util.is_String(dk):
|
1288
|
+
dk = [(dk,)]
|
1289
|
+
else:
|
1290
|
+
tmp = []
|
1291
|
+
for i in dk:
|
1292
|
+
if SCons.Util.is_List(i):
|
1293
|
+
if len(i) >= 2:
|
1294
|
+
tmp.append((i[0], i[1]))
|
1295
|
+
else:
|
1296
|
+
tmp.append((i[0],))
|
1297
|
+
elif SCons.Util.is_Tuple(i):
|
1298
|
+
tmp.append(i)
|
1299
|
+
else:
|
1300
|
+
tmp.append((i,))
|
1301
|
+
dk = tmp
|
1302
|
+
else:
|
1303
|
+
if not SCons.Util.is_List(dk):
|
1304
|
+
dk = [dk]
|
1256
1305
|
if delete_existing:
|
1257
1306
|
dk = [x for x in dk if x not in val]
|
1258
1307
|
else:
|
@@ -1261,15 +1310,57 @@ class Base(SubstitutionEnvironment):
|
|
1261
1310
|
else:
|
1262
1311
|
dk = self._dict[key]
|
1263
1312
|
if SCons.Util.is_List(dk):
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1313
|
+
if key == 'CPPDEFINES':
|
1314
|
+
tmp = []
|
1315
|
+
for i in dk:
|
1316
|
+
if SCons.Util.is_List(i):
|
1317
|
+
if len(i) >= 2:
|
1318
|
+
tmp.append((i[0], i[1]))
|
1319
|
+
else:
|
1320
|
+
tmp.append((i[0],))
|
1321
|
+
elif SCons.Util.is_Tuple(i):
|
1322
|
+
tmp.append(i)
|
1323
|
+
else:
|
1324
|
+
tmp.append((i,))
|
1325
|
+
dk = tmp
|
1326
|
+
if SCons.Util.is_Dict(val):
|
1327
|
+
val = val.items()
|
1328
|
+
elif SCons.Util.is_String(val):
|
1329
|
+
val = [(val,)]
|
1330
|
+
if delete_existing:
|
1331
|
+
dk = filter(lambda x, val=val: x not in val, dk)
|
1332
|
+
self._dict[key] = dk + val
|
1333
|
+
else:
|
1334
|
+
dk = [x for x in dk if x not in val]
|
1335
|
+
self._dict[key] = dk + val
|
1269
1336
|
else:
|
1270
|
-
|
1337
|
+
# By elimination, val is not a list. Since dk is a
|
1338
|
+
# list, wrap val in a list first.
|
1339
|
+
if delete_existing:
|
1340
|
+
dk = filter(lambda x, val=val: x not in val, dk)
|
1271
1341
|
self._dict[key] = dk + [val]
|
1342
|
+
else:
|
1343
|
+
if not val in dk:
|
1344
|
+
self._dict[key] = dk + [val]
|
1272
1345
|
else:
|
1346
|
+
if key == 'CPPDEFINES':
|
1347
|
+
if SCons.Util.is_String(dk):
|
1348
|
+
dk = [dk]
|
1349
|
+
elif SCons.Util.is_Dict(dk):
|
1350
|
+
dk = dk.items()
|
1351
|
+
if SCons.Util.is_String(val):
|
1352
|
+
if val in dk:
|
1353
|
+
val = []
|
1354
|
+
else:
|
1355
|
+
val = [val]
|
1356
|
+
elif SCons.Util.is_Dict(val):
|
1357
|
+
tmp = []
|
1358
|
+
for i,j in val.iteritems():
|
1359
|
+
if j is not None:
|
1360
|
+
tmp.append((i,j))
|
1361
|
+
else:
|
1362
|
+
tmp.append(i)
|
1363
|
+
val = tmp
|
1273
1364
|
if delete_existing:
|
1274
1365
|
dk = [x for x in dk if x not in val]
|
1275
1366
|
self._dict[key] = dk + val
|
@@ -2285,6 +2376,12 @@ def NoSubstitutionProxy(subject):
|
|
2285
2376
|
return getattr(self.__dict__['__subject'], name)
|
2286
2377
|
def __setattr__(self, name, value):
|
2287
2378
|
return setattr(self.__dict__['__subject'], name, value)
|
2379
|
+
def executor_to_lvars(self, kwdict):
|
2380
|
+
if kwdict.has_key('executor'):
|
2381
|
+
kwdict['lvars'] = kwdict['executor'].get_lvars()
|
2382
|
+
del kwdict['executor']
|
2383
|
+
else:
|
2384
|
+
kwdict['lvars'] = {}
|
2288
2385
|
def raw_to_mode(self, dict):
|
2289
2386
|
try:
|
2290
2387
|
raw = dict['raw']
|
@@ -2301,12 +2398,14 @@ def NoSubstitutionProxy(subject):
|
|
2301
2398
|
nargs = (string, self,) + args
|
2302
2399
|
nkw = kwargs.copy()
|
2303
2400
|
nkw['gvars'] = {}
|
2401
|
+
self.executor_to_lvars(nkw)
|
2304
2402
|
self.raw_to_mode(nkw)
|
2305
2403
|
return SCons.Subst.scons_subst_list(*nargs, **nkw)
|
2306
2404
|
def subst_target_source(self, string, *args, **kwargs):
|
2307
2405
|
nargs = (string, self,) + args
|
2308
2406
|
nkw = kwargs.copy()
|
2309
2407
|
nkw['gvars'] = {}
|
2408
|
+
self.executor_to_lvars(nkw)
|
2310
2409
|
self.raw_to_mode(nkw)
|
2311
2410
|
return SCons.Subst.scons_subst(*nargs, **nkw)
|
2312
2411
|
return _NoSubstitutionProxy(subject)
|