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.
Files changed (204) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +35 -7
  3. data/Rakefile +61 -20
  4. data/ext/libv8/extconf.rb +15 -0
  5. data/lib/libv8/scons/CHANGES.txt +231 -24
  6. data/lib/libv8/scons/LICENSE.txt +1 -1
  7. data/lib/libv8/scons/MANIFEST +1 -0
  8. data/lib/libv8/scons/PKG-INFO +1 -1
  9. data/lib/libv8/scons/README.txt +9 -9
  10. data/lib/libv8/scons/RELEASE.txt +77 -75
  11. data/lib/libv8/scons/engine/SCons/Action.py +22 -6
  12. data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
  13. data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
  14. data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
  15. data/lib/libv8/scons/engine/SCons/Defaults.py +24 -10
  16. data/lib/libv8/scons/engine/SCons/Environment.py +118 -19
  17. data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
  18. data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
  19. data/lib/libv8/scons/engine/SCons/Job.py +2 -2
  20. data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
  21. data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
  22. data/lib/libv8/scons/engine/SCons/Node/FS.py +281 -121
  23. data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
  24. data/lib/libv8/scons/engine/SCons/Node/__init__.py +6 -5
  25. data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
  26. data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
  27. data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
  28. data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
  29. data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
  30. data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
  31. data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
  32. data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
  33. data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
  34. data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
  35. data/lib/libv8/scons/engine/SCons/Platform/darwin.py +27 -3
  36. data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
  37. data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
  38. data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
  39. data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
  40. data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
  41. data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
  42. data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
  43. data/lib/libv8/scons/engine/SCons/SConsign.py +9 -3
  44. data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
  45. data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
  46. data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
  47. data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
  48. data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
  49. data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +5 -2
  50. data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
  51. data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
  52. data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
  53. data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
  54. data/lib/libv8/scons/engine/SCons/Script/Main.py +82 -11
  55. data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
  56. data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
  57. data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
  58. data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
  59. data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
  60. data/lib/libv8/scons/engine/SCons/Taskmaster.py +10 -2
  61. data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
  62. data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
  63. data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
  64. data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +19 -2
  65. data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
  66. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
  67. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
  68. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
  69. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
  70. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
  71. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +9 -6
  72. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +29 -2
  73. data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
  74. data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
  75. data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
  76. data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
  77. data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
  78. data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
  79. data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
  80. data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
  81. data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
  82. data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
  83. data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
  84. data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
  85. data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
  86. data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
  87. data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
  88. data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
  89. data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
  90. data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
  91. data/lib/libv8/scons/engine/SCons/Tool/dmd.py +24 -7
  92. data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
  93. data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +3 -2
  94. data/lib/libv8/scons/engine/SCons/Tool/dvips.py +3 -2
  95. data/lib/libv8/scons/engine/SCons/Tool/f03.py +63 -0
  96. data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
  97. data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
  98. data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
  99. data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
  100. data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
  101. data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
  102. data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
  103. data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
  104. data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
  105. data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
  106. data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +2 -3
  107. data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
  108. data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
  109. data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
  110. data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
  111. data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
  112. data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
  113. data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
  114. data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
  115. data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
  116. data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
  117. data/lib/libv8/scons/engine/SCons/Tool/install.py +57 -3
  118. data/lib/libv8/scons/engine/SCons/Tool/intelc.py +65 -25
  119. data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
  120. data/lib/libv8/scons/engine/SCons/Tool/jar.py +9 -3
  121. data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
  122. data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
  123. data/lib/libv8/scons/engine/SCons/Tool/latex.py +3 -2
  124. data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
  125. data/lib/libv8/scons/engine/SCons/Tool/link.py +6 -5
  126. data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
  127. data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
  128. data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
  129. data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
  130. data/lib/libv8/scons/engine/SCons/Tool/mingw.py +31 -10
  131. data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
  132. data/lib/libv8/scons/engine/SCons/Tool/mslink.py +61 -9
  133. data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
  134. data/lib/libv8/scons/engine/SCons/Tool/msvc.py +21 -11
  135. data/lib/libv8/scons/engine/SCons/Tool/msvs.py +477 -59
  136. data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
  137. data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
  138. data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
  139. data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
  140. data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
  141. data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
  142. data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
  143. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
  144. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
  145. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
  146. data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
  147. data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
  148. data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
  149. data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
  150. data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +3 -2
  151. data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +3 -2
  152. data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
  153. data/lib/libv8/scons/engine/SCons/Tool/rmic.py +9 -3
  154. data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
  155. data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
  156. data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
  157. data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
  158. data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
  159. data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +2 -3
  160. data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
  161. data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
  162. data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
  163. data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
  164. data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
  165. data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
  166. data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +2 -3
  167. data/lib/libv8/scons/engine/SCons/Tool/swig.py +6 -5
  168. data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
  169. data/lib/libv8/scons/engine/SCons/Tool/tex.py +96 -43
  170. data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
  171. data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
  172. data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
  173. data/lib/libv8/scons/engine/SCons/Tool/yacc.py +12 -2
  174. data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
  175. data/lib/libv8/scons/engine/SCons/Util.py +3 -3
  176. data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
  177. data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
  178. data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
  179. data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
  180. data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
  181. data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
  182. data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
  183. data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
  184. data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
  185. data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
  186. data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
  187. data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
  188. data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
  189. data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
  190. data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
  191. data/lib/libv8/scons/engine/SCons/dblite.py +4 -1
  192. data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
  193. data/lib/libv8/scons/scons-time.1 +3 -3
  194. data/lib/libv8/scons/scons.1 +1209 -1203
  195. data/lib/libv8/scons/sconsign.1 +3 -3
  196. data/lib/libv8/scons/script/scons +22 -22
  197. data/lib/libv8/scons/script/scons-time +2 -2
  198. data/lib/libv8/scons/script/scons.bat +7 -4
  199. data/lib/libv8/scons/script/sconsign +21 -20
  200. data/lib/libv8/scons/setup.cfg +0 -1
  201. data/lib/libv8/scons/setup.py +38 -40
  202. data/lib/libv8/version.rb +4 -2
  203. data/libv8.gemspec +7 -2
  204. metadata +46 -67
@@ -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
@@ -88,6 +88,7 @@ engine/SCons/Tool/dmd.py
88
88
  engine/SCons/Tool/dvi.py
89
89
  engine/SCons/Tool/dvipdf.py
90
90
  engine/SCons/Tool/dvips.py
91
+ engine/SCons/Tool/f03.py
91
92
  engine/SCons/Tool/f77.py
92
93
  engine/SCons/Tool/f90.py
93
94
  engine/SCons/Tool/f95.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: scons
3
- Version: 2.0.1
3
+ Version: 2.1.0
4
4
  Summary: Open Source next-generation build tool.
5
5
  Home-page: http://www.scons.org/
6
6
  Author: Steven Knight
@@ -2,7 +2,7 @@
2
2
 
3
3
  SCons - a software construction tool
4
4
 
5
- Version 2.0.1
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.1" and "sconsign-2.0.1"
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.1" and
74
- "sconsign-2.0.1" scripts by specifying the "--hardlink-scons"
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.1.bat" and "scons.bat" wrapper scripts in the
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.1.bat" and "scons.bat" files
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.1 or C:\Python*\scons-2.0.1, for example).
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 5134 2010/08/16 23:02:40 bdeegan
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
@@ -1,98 +1,100 @@
1
- A new SCons release, 2.0.1, is now available
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
- The primary purpose of this release is to remove support for Python
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
- - There should be no new functionality or bug fixes in this checkpoint.
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
- - The SourceCode() function and its associated factory functions have
24
- started their deprecation cycle and can have a warning enabled.
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
- - Any Command() or env.Command() calls that use the following Action
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
- Chmod()
33
- Copy()
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
- (The rebuild occurs because the underlying Python class that
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
- - MSVC/MSVS/SDK support has been improved. A number of issues with
47
- determining the correct version and architecture have been resolved.
48
-
49
- - Fix propagation from environment of VS*COMNTOOLS to resolve issues
50
- initializing MSVC/MSVS/SDK issues.
51
-
52
- - Fixed a case-sensitivity problem with Fortran modules.
53
-
54
- - Fix the ability to append to default $*FLAGS values (which are
55
- implemented as CLVar instances) in a copied construction environment
56
- without affecting the original construction environment's value.
57
-
58
- - Updated the TeX command strings to include a /D on Windows in
59
- case the new directory is on a different drive letter.
60
-
61
- - Fixed the LaTeX scanner so dependencies are found in commands that
62
- are broken across lines with a comment or have embedded spaces.
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
- - Support for Python versions prior to 2.4 has been removed. As of
67
- this writing, we believe that SCons will still work with Python 2.3,
68
- but this is not guaranteed.
69
- - Code paths that included special cases for older Python versions have
70
- been streamlined.
71
- - The code base has been converted to use more modern idioms. Although
72
- we don't have any direct measurements (yet), we believe that SCons
73
- startup time should be decreased and the overall code should run faster.
74
-
75
- PACKAGING
76
-
77
- - No changes.
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
- - The entries for SourceCode() and its associated factory functions now
82
- state that the functions are deprecated.
83
-
84
- - Document the AllowSubstExceptions() function in the User's Guide.
85
-
86
-
87
- DEVELOPMENT
88
-
89
- - Code no longer has to be compatible with Python versions back to 1.5.2.
90
- Although code is tested with Python 2.3 and is still believed to work,
91
- the official new floor is Python 2.4.
92
-
93
- Thanks to Greg Noel, Steven Knight, Dirk Baechle, William Deegan,
94
- W. Trevor King, Joe Zuntz, Bauke Conijn, Matt Hughes, Rob Managan,
95
- and Jim Randall for their contributions to this release.
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 5134 2010/08/16 23:02:40 bdeegan"
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 or a2 is None:
304
- raise TypeError("Cannot append %s to %s" % (type(act1), type(act2)))
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.write(s + u"\n")
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 5134 2010/08/16 23:02:40 bdeegan"
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 5134 2010/08/16 23:02:40 bdeegan"
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 5134 2010/08/16 23:02:40 bdeegan"
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 5134 2010/08/16 23:02:40 bdeegan"
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
- if not must_exist and not os.path.exists(entry):
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
- if not os.path.exists(entry) or os.path.isfile(entry):
205
- os.unlink(entry)
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 SCons.Util.is_List(d) or isinstance(d, tuple):
376
- l.append(str(d[0]) + '=' + str(d[1]))
377
- else:
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 5134 2010/08/16 23:02:40 bdeegan"
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 == '-mno-cygwin':
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
- dict['CFLAGS'].append(arg) # C only
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
- self._dict[key] = val
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
- for v in val:
1192
- orig[v] = None
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 not SCons.Util.is_List(dk):
1255
- dk = [dk]
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
- # By elimination, val is not a list. Since dk is a
1265
- # list, wrap val in a list first.
1266
- if delete_existing:
1267
- dk = [x for x in dk if x not in val]
1268
- self._dict[key] = dk + [val]
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
- if not val in dk:
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)