libv8 3.3.10.2 → 3.3.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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)
|