Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

+ update scons to the latest version 2.2.0

  • Loading branch information...
commit 02e07f9c9c3b3cdcdf7a6cff07116a799cb62d4e 1 parent 8bba93d
@artemp artemp authored
Showing with 1,736 additions and 506 deletions.
  1. +1 −1  scons/scons-LICENSE
  2. +1 −1  scons/scons-README
  3. +3 −3 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Action.py
  4. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Builder.py
  5. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/CacheDir.py
  6. +1 −1  scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Conftest.py
  7. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Debug.py
  8. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Defaults.py
  9. +18 −18 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Environment.py
  10. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Errors.py
  11. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Executor.py
  12. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Job.py
  13. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Memoize.py
  14. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Node/Alias.py
  15. +3 −3 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Node/FS.py
  16. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Node/Python.py
  17. +4 −3 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Node/__init__.py
  18. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Options/BoolOption.py
  19. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Options/EnumOption.py
  20. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Options/ListOption.py
  21. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Options/PackageOption.py
  22. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Options/PathOption.py
  23. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Options/__init__.py
  24. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/PathList.py
  25. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/__init__.py
  26. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/aix.py
  27. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/cygwin.py
  28. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/darwin.py
  29. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/hpux.py
  30. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/irix.py
  31. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/os2.py
  32. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/posix.py
  33. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/sunos.py
  34. +8 −9 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Platform/win32.py
  35. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/SConf.py
  36. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/SConsign.py
  37. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/C.py
  38. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/D.py
  39. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/Dir.py
  40. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/Fortran.py
  41. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/IDL.py
  42. +6 −3 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/LaTeX.py
  43. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/Prog.py
  44. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/RC.py
  45. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Scanner/__init__.py
  46. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Script/Interactive.py
  47. +5 −4 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Script/Main.py
  48. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Script/SConsOptions.py
  49. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Script/SConscript.py
  50. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Script/__init__.py
  51. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Sig.py
  52. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Subst.py
  53. +21 −14 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Taskmaster.py
  54. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/386asm.py
  55. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/BitKeeper.py
  56. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/CVS.py
  57. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/FortranCommon.py
  58. +429 −0 scons/scons-local-2.2.0/SCons/Tool/GettextCommon.py
  59. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/JavaCommon.py
  60. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/__init__.py
  61. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/arch.py
  62. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/common.py
  63. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/netframework.py
  64. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/sdk.py
  65. +12 −7 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/vc.py
  66. +29 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/MSCommon/vs.py
  67. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/Perforce.py
  68. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/PharLapCommon.py
  69. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/RCS.py
  70. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/SCCS.py
  71. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/Subversion.py
  72. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/__init__.py
  73. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/aixc++.py
  74. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/aixcc.py
  75. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/aixf77.py
  76. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/aixlink.py
  77. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/applelink.py
  78. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/ar.py
  79. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/as.py
  80. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/bcc32.py
  81. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/c++.py
  82. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/cc.py
  83. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/cvf.py
  84. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/default.py
  85. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/dmd.py
  86. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/dvi.py
  87. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/dvipdf.py
  88. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/dvips.py
  89. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/f03.py
  90. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/f77.py
  91. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/f90.py
  92. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/f95.py
  93. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/filesystem.py
  94. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/fortran.py
  95. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/g++.py
  96. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/g77.py
  97. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/gas.py
  98. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/gcc.py
  99. +45 −0 scons/scons-local-2.2.0/SCons/Tool/gettext.py
  100. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/gfortran.py
  101. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/gnulink.py
  102. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/gs.py
  103. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/hpc++.py
  104. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/hpcc.py
  105. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/hplink.py
  106. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/icc.py
  107. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/icl.py
  108. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/ifl.py
  109. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/ifort.py
  110. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/ilink.py
  111. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/ilink32.py
  112. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/install.py
  113. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/intelc.py
  114. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/ipkg.py
  115. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/jar.py
  116. +8 −6 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/javac.py
  117. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/javah.py
  118. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/latex.py
  119. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/lex.py
  120. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/link.py
  121. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/linkloc.py
  122. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/m4.py
  123. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/masm.py
  124. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/midl.py
  125. +6 −6 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/mingw.py
  126. +102 −0 scons/scons-local-2.2.0/SCons/Tool/msgfmt.py
  127. +114 −0 scons/scons-local-2.2.0/SCons/Tool/msginit.py
  128. +98 −0 scons/scons-local-2.2.0/SCons/Tool/msgmerge.py
  129. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/mslib.py
  130. +15 −6 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/mslink.py
  131. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/mssdk.py
  132. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/msvc.py
  133. +37 −44 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/msvs.py
  134. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/mwcc.py
  135. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/mwld.py
  136. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/nasm.py
  137. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/__init__.py
  138. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/ipk.py
  139. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/msi.py
  140. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/rpm.py
  141. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/src_tarbz2.py
  142. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/src_targz.py
  143. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/src_zip.py
  144. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/tarbz2.py
  145. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/targz.py
  146. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/packaging/zip.py
  147. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/pdf.py
  148. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/pdflatex.py
  149. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/pdftex.py
  150. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/qt.py
  151. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/rmic.py
  152. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/rpcgen.py
  153. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/rpm.py
  154. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sgiar.py
  155. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sgic++.py
  156. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sgicc.py
  157. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sgilink.py
  158. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sunar.py
  159. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sunc++.py
  160. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/suncc.py
  161. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sunf77.py
  162. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sunf90.py
  163. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sunf95.py
  164. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/sunlink.py
  165. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/swig.py
  166. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/tar.py
  167. +76 −14 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/tex.py
  168. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/textfile.py
  169. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/tlib.py
  170. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/wix.py
  171. +333 −0 scons/scons-local-2.2.0/SCons/Tool/xgettext.py
  172. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/yacc.py
  173. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Tool/zip.py
  174. +9 −9 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Util.py
  175. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Variables/BoolVariable.py
  176. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Variables/EnumVariable.py
  177. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Variables/ListVariable.py
  178. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Variables/PackageVariable.py
  179. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Variables/PathVariable.py
  180. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Variables/__init__.py
  181. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/Warnings.py
  182. +7 −7 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/__init__.py
  183. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/__init__.py
  184. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_builtins.py
  185. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_collections.py
  186. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_dbm.py
  187. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_hashlib.py
  188. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_io.py
  189. 0  scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_sets.py
  190. 0  scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/compat/_scons_subprocess.py
  191. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/cpp.py
  192. 0  scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/dblite.py
  193. +2 −2 scons/{scons-local-2.1.0 → scons-local-2.2.0}/SCons/exitfuncs.py
  194. +1 −1  scons/{scons-local-2.1.0/scons-2.1.0.egg-info → scons-local-2.2.0/scons-2.2.0.egg-info}
  195. +2 −2 scons/scons-time.py
  196. +7 −7 scons/scons.py
  197. +7 −7 scons/sconsign.py
View
2  scons/scons-LICENSE
@@ -3,7 +3,7 @@
This copyright and license do not apply to any other software
with which this software may have been included.
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
View
2  scons/scons-README
@@ -1,4 +1,4 @@
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
SCons - a software construction tool
View
6 scons/scons-local-2.1.0/SCons/Action.py → scons/scons-local-2.2.0/SCons/Action.py
@@ -76,7 +76,7 @@
"""
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -97,7 +97,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Action.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Action.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.compat
@@ -899,7 +899,7 @@ def __call__(self, target, source, env, exitstatfunc=_null, presub=_null,
show=_null, execute=_null, chdir=_null, executor=None):
act = self._generate(target, source, env, 0, executor)
if act is None:
- raise UserError("While building `%s': "
+ raise SCons.Errors.UserError("While building `%s': "
"Cannot deduce file extension from source files: %s"
% (repr(list(map(str, target))), repr(list(map(str, source)))))
return act(target, source, env, exitstatfunc, presub,
View
4 scons/scons-local-2.1.0/SCons/Builder.py → scons/scons-local-2.2.0/SCons/Builder.py
@@ -76,7 +76,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -97,7 +97,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Builder.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Builder.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import collections
View
4 scons/scons-local-2.1.0/SCons/CacheDir.py → scons/scons-local-2.2.0/SCons/CacheDir.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/CacheDir.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/CacheDir.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """
CacheDir support
View
2  scons/scons-local-2.1.0/SCons/Conftest.py → scons/scons-local-2.2.0/SCons/Conftest.py
@@ -554,7 +554,7 @@ def CheckDeclaration(context, symbol, includes = None, language = None):
lang, suffix, msg = _lang2suffix(language)
if msg:
- context.Display("Cannot check for declaration %s: %s\n" % (type_name, msg))
+ context.Display("Cannot check for declaration %s: %s\n" % (symbol, msg))
return msg
src = includetext + includes
View
4 scons/scons-local-2.1.0/SCons/Debug.py → scons/scons-local-2.2.0/SCons/Debug.py
@@ -6,7 +6,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Debug.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Debug.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import os
import sys
View
4 scons/scons-local-2.1.0/SCons/Defaults.py → scons/scons-local-2.2.0/SCons/Defaults.py
@@ -10,7 +10,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -33,7 +33,7 @@
#
from __future__ import division
-__revision__ = "src/engine/SCons/Defaults.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Defaults.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import os
View
36 scons/scons-local-2.1.0/SCons/Environment.py → scons/scons-local-2.2.0/SCons/Environment.py
@@ -10,7 +10,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Environment.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Environment.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import copy
@@ -72,6 +72,7 @@ class _Null(object):
CalculatorArgs = {}
semi_deepcopy = SCons.Util.semi_deepcopy
+semi_deepcopy_dict = SCons.Util.semi_deepcopy_dict
# Pull UserError into the global name space for the benefit of
# Environment().SourceSignatures(), which has some import statements
@@ -303,7 +304,9 @@ def __init__(self, dict, env):
UserDict.__init__(self, dict)
def __semi_deepcopy__(self):
- return self.__class__(self.data, self.env)
+ # These cannot be copied since they would both modify the same builder object, and indeed
+ # just copying would modify the original builder
+ raise TypeError( 'cannot semi_deepcopy a BuilderDict' )
def __setitem__(self, item, val):
try:
@@ -1374,15 +1377,15 @@ def Clone(self, tools=[], toolpath=None, parse_flags = None, **kw):
(like a function). There are no references to any mutable
objects in the original Environment.
"""
- clone = copy.copy(self)
- clone._dict = semi_deepcopy(self._dict)
-
try:
- cbd = clone._dict['BUILDERS']
+ builders = self._dict['BUILDERS']
except KeyError:
pass
- else:
- clone._dict['BUILDERS'] = BuilderDict(cbd, clone)
+
+ clone = copy.copy(self)
+ # BUILDERS is not safe to do a simple copy
+ clone._dict = semi_deepcopy_dict(self._dict, ['BUILDERS'])
+ clone._dict['BUILDERS'] = BuilderDict(builders, clone)
# Check the methods added via AddMethod() and re-bind them to
# the cloned environment. Only do this if the attribute hasn't
@@ -1733,7 +1736,7 @@ def Replace(self, **kw):
except KeyError:
pass
else:
- kwbd = semi_deepcopy(kwbd)
+ kwbd = BuilderDict(kwbd,self)
del kw['BUILDERS']
self.__setitem__('BUILDERS', kwbd)
kw = copy_non_reserved_keywords(kw)
@@ -2228,14 +2231,11 @@ def build_source(ss):
sources.append(s)
build_source(node.all_children())
- # THIS CODE APPEARS TO HAVE NO EFFECT
- # # get the final srcnode for all nodes, this means stripping any
- # # attached build node by calling the srcnode function
- # for file in sources:
- # srcnode = file.srcnode()
- # while srcnode != file.srcnode():
- # srcnode = file.srcnode()
-
+ def final_source(node):
+ while (node != node.srcnode()):
+ node = node.srcnode()
+ return node
+ sources = map( final_source, sources );
# remove duplicates
return list(set(sources))
View
4 scons/scons-local-2.1.0/SCons/Errors.py → scons/scons-local-2.2.0/SCons/Errors.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
"""
-__revision__ = "src/engine/SCons/Errors.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Errors.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Util
View
4 scons/scons-local-2.1.0/SCons/Executor.py → scons/scons-local-2.2.0/SCons/Executor.py
@@ -6,7 +6,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Executor.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Executor.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import collections
View
4 scons/scons-local-2.1.0/SCons/Job.py → scons/scons-local-2.2.0/SCons/Job.py
@@ -7,7 +7,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Job.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Job.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.compat
View
4 scons/scons-local-2.1.0/SCons/Memoize.py → scons/scons-local-2.2.0/SCons/Memoize.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Memoize.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Memoize.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Memoizer
View
4 scons/scons-local-2.1.0/SCons/Node/Alias.py → scons/scons-local-2.2.0/SCons/Node/Alias.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Node/Alias.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Node/Alias.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import collections
View
6 scons/scons-local-2.1.0/SCons/Node/FS.py → scons/scons-local-2.2.0/SCons/Node/FS.py
@@ -11,7 +11,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Node/FS.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Node/FS.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import fnmatch
import os
@@ -2715,7 +2715,7 @@ def retrieve_from_cache(self):
so only do thread safe stuff here. Do thread unsafe stuff in
built().
- Returns true iff the node was successfully retrieved.
+ Returns true if the node was successfully retrieved.
"""
if self.nocache:
return None
View
4 scons/scons-local-2.1.0/SCons/Node/Python.py → scons/scons-local-2.2.0/SCons/Node/Python.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Node/Python.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Node/Python.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Node
View
7 scons/scons-local-2.1.0/SCons/Node/__init__.py → scons/scons-local-2.2.0/SCons/Node/__init__.py
@@ -20,7 +20,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -41,7 +41,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Node/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Node/__init__.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import collections
import copy
@@ -216,6 +216,7 @@ def __init__(self):
self.precious = None
self.noclean = 0
self.nocache = 0
+ self.cached = 0 # is this node pulled from cache?
self.always_build = None
self.includes = None
self.attributes = self.Attrs() # Generic place to stick information about the Node.
@@ -306,7 +307,7 @@ def retrieve_from_cache(self):
so only do thread safe stuff here. Do thread unsafe stuff in
built().
- Returns true iff the node was successfully retrieved.
+ Returns true if the node was successfully retrieved.
"""
return 0
View
4 scons/scons-local-2.1.0/SCons/Options/BoolOption.py → scons/scons-local-2.2.0/SCons/Options/BoolOption.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Options/BoolOption.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Options/BoolOption.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Options module hierarchy
View
4 scons/scons-local-2.1.0/SCons/Options/EnumOption.py → scons/scons-local-2.2.0/SCons/Options/EnumOption.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Options/EnumOption.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Options/EnumOption.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Options module hierarchy
View
4 scons/scons-local-2.1.0/SCons/Options/ListOption.py → scons/scons-local-2.2.0/SCons/Options/ListOption.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Options/ListOption.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Options/ListOption.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Options module hierarchy
View
4 .../scons-local-2.1.0/SCons/Options/PackageOption.py → .../scons-local-2.2.0/SCons/Options/PackageOption.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Options/PackageOption.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Options/PackageOption.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Options module hierarchy
View
4 scons/scons-local-2.1.0/SCons/Options/PathOption.py → scons/scons-local-2.2.0/SCons/Options/PathOption.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Options/PathOption.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Options/PathOption.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Options module hierarchy
View
4 scons/scons-local-2.1.0/SCons/Options/__init__.py → scons/scons-local-2.2.0/SCons/Options/__init__.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Options/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Options/__init__.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Options module hierarchy
View
4 scons/scons-local-2.1.0/SCons/PathList.py → scons/scons-local-2.2.0/SCons/PathList.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/PathList.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/PathList.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """SCons.PathList
View
4 scons/scons-local-2.1.0/SCons/Platform/__init__.py → scons/scons-local-2.2.0/SCons/Platform/__init__.py
@@ -20,7 +20,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -42,7 +42,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/__init__.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.compat
View
4 scons/scons-local-2.1.0/SCons/Platform/aix.py → scons/scons-local-2.2.0/SCons/Platform/aix.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/aix.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/aix.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import os
View
4 scons/scons-local-2.1.0/SCons/Platform/cygwin.py → scons/scons-local-2.2.0/SCons/Platform/cygwin.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/cygwin.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/cygwin.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import posix
from SCons.Platform import TempFileMunge
View
4 scons/scons-local-2.1.0/SCons/Platform/darwin.py → scons/scons-local-2.2.0/SCons/Platform/darwin.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/darwin.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/darwin.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import posix
import os
View
4 scons/scons-local-2.1.0/SCons/Platform/hpux.py → scons/scons-local-2.2.0/SCons/Platform/hpux.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/hpux.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/hpux.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import posix
View
4 scons/scons-local-2.1.0/SCons/Platform/irix.py → scons/scons-local-2.2.0/SCons/Platform/irix.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/irix.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/irix.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import posix
View
4 scons/scons-local-2.1.0/SCons/Platform/os2.py → scons/scons-local-2.2.0/SCons/Platform/os2.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/os2.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/os2.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import win32
def generate(env):
View
4 scons/scons-local-2.1.0/SCons/Platform/posix.py → scons/scons-local-2.2.0/SCons/Platform/posix.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/posix.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/posix.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import errno
import os
View
4 scons/scons-local-2.1.0/SCons/Platform/sunos.py → scons/scons-local-2.2.0/SCons/Platform/sunos.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/sunos.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/sunos.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import posix
View
17 scons/scons-local-2.1.0/SCons/Platform/win32.py → scons/scons-local-2.2.0/SCons/Platform/win32.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Platform/win32.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Platform/win32.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import os
import os.path
@@ -64,13 +64,12 @@
_builtin_file = builtins.file
_builtin_open = builtins.open
-
- def _scons_file(*args, **kw):
- fp = _builtin_file(*args, **kw)
- win32api.SetHandleInformation(msvcrt.get_osfhandle(fp.fileno()),
- win32con.HANDLE_FLAG_INHERIT,
- 0)
- return fp
+
+ class _scons_file(_builtin_file):
+ def __init__(self, *args, **kw):
+ _builtin_file.__init__(self, *args, **kw)
+ win32api.SetHandleInformation(msvcrt.get_osfhandle(self.fileno()),
+ win32con.HANDLE_FLAG_INHERIT, 0)
def _scons_open(*args, **kw):
fp = _builtin_open(*args, **kw)
View
4 scons/scons-local-2.1.0/SCons/SConf.py → scons/scons-local-2.2.0/SCons/SConf.py
@@ -4,7 +4,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/SConf.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/SConf.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.compat
View
4 scons/scons-local-2.1.0/SCons/SConsign.py → scons/scons-local-2.2.0/SCons/SConsign.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/SConsign.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/SConsign.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.compat
View
4 scons/scons-local-2.1.0/SCons/Scanner/C.py → scons/scons-local-2.2.0/SCons/Scanner/C.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/C.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/C.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Node.FS
import SCons.Scanner
View
4 scons/scons-local-2.1.0/SCons/Scanner/D.py → scons/scons-local-2.2.0/SCons/Scanner/D.py
@@ -8,7 +8,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/D.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/D.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import re
View
4 scons/scons-local-2.1.0/SCons/Scanner/Dir.py → scons/scons-local-2.2.0/SCons/Scanner/Dir.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,7 +20,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Scanner/Dir.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/Dir.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Node.FS
import SCons.Scanner
View
4 scons/scons-local-2.1.0/SCons/Scanner/Fortran.py → scons/scons-local-2.2.0/SCons/Scanner/Fortran.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Scanner/Fortran.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/Fortran.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import re
View
4 scons/scons-local-2.1.0/SCons/Scanner/IDL.py → scons/scons-local-2.2.0/SCons/Scanner/IDL.py
@@ -6,7 +6,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/IDL.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/IDL.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Node.FS
import SCons.Scanner
View
9 scons/scons-local-2.1.0/SCons/Scanner/LaTeX.py → scons/scons-local-2.2.0/SCons/Scanner/LaTeX.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/LaTeX.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/LaTeX.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import os.path
import re
@@ -159,6 +159,9 @@ class LaTeX(SCons.Scanner.Base):
'includegraphics': 'TEXINPUTS',
'bibliography': 'BIBINPUTS',
'bibliographystyle': 'BSTINPUTS',
+ 'addbibresource': 'BIBINPUTS',
+ 'addglobalbib': 'BIBINPUTS',
+ 'addsectionbib': 'BIBINPUTS',
'makeindex': 'INDEXSTYLE',
'usepackage': 'TEXINPUTS',
'lstinputlisting': 'TEXINPUTS'}
@@ -172,7 +175,7 @@ def __init__(self, name, suffixes, graphics_extensions, *args, **kw):
# line followed by one or more newline characters (i.e. blank
# lines), interfering with a match on the next line.
# add option for whitespace before the '[options]' or the '{filename}'
- regex = r'^[^%\n]*\\(include|includegraphics(?:\s*\[[^\]]+\])?|lstinputlisting(?:\[[^\]]+\])?|input|bibliography|usepackage)\s*{([^}]*)}'
+ regex = r'^[^%\n]*\\(include|includegraphics(?:\s*\[[^\]]+\])?|lstinputlisting(?:\[[^\]]+\])?|input|bibliography|addbibresource|addglobalbib|addsectionbib|usepackage)\s*{([^}]*)}'
self.cre = re.compile(regex, re.M)
self.comment_re = re.compile(r'^((?:(?:\\%)|[^%\n])*)(.*)$', re.M)
View
4 scons/scons-local-2.1.0/SCons/Scanner/Prog.py → scons/scons-local-2.2.0/SCons/Scanner/Prog.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/Prog.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/Prog.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Node
import SCons.Node.FS
View
4 scons/scons-local-2.1.0/SCons/Scanner/RC.py → scons/scons-local-2.2.0/SCons/Scanner/RC.py
@@ -6,7 +6,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/RC.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/RC.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Node.FS
import SCons.Scanner
View
4 scons/scons-local-2.1.0/SCons/Scanner/__init__.py → scons/scons-local-2.2.0/SCons/Scanner/__init__.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Scanner/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Scanner/__init__.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import re
View
4 scons/scons-local-2.1.0/SCons/Script/Interactive.py → scons/scons-local-2.2.0/SCons/Script/Interactive.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,7 +20,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Script/Interactive.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Script/Interactive.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """
SCons interactive mode
View
9 scons/scons-local-2.1.0/SCons/Script/Main.py → scons/scons-local-2.2.0/SCons/Script/Main.py
@@ -13,7 +13,7 @@
unsupported_python_version = (2, 3, 0)
deprecated_python_version = (2, 4, 0)
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -34,7 +34,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Script/Main.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Script/Main.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.compat
@@ -869,7 +869,8 @@ def _main(parser):
script_dir = ''
if script_dir and script_dir != os.getcwd():
- display("scons: Entering directory `%s'" % script_dir)
+ if not options.silent:
+ display("scons: Entering directory `%s'" % script_dir)
try:
os.chdir(script_dir)
except OSError:
@@ -1329,7 +1330,7 @@ def main():
pass
parts.append(version_string("engine", SCons))
parts.append(path_string("engine", SCons))
- parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation")
+ parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation")
version = ''.join(parts)
import SConsOptions
View
4 scons/scons-local-2.1.0/SCons/Script/SConsOptions.py → scons/scons-local-2.2.0/SCons/Script/SConsOptions.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Script/SConsOptions.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Script/SConsOptions.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import optparse
import re
View
4 scons/scons-local-2.1.0/SCons/Script/SConscript.py → scons/scons-local-2.2.0/SCons/Script/SConscript.py
@@ -6,7 +6,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -28,7 +28,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
from __future__ import division
-__revision__ = "src/engine/SCons/Script/SConscript.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Script/SConscript.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons
import SCons.Action
View
4 scons/scons-local-2.1.0/SCons/Script/__init__.py → scons/scons-local-2.2.0/SCons/Script/__init__.py
@@ -12,7 +12,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -34,7 +34,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Script/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Script/__init__.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import time
start_time = time.time()
View
4 scons/scons-local-2.1.0/SCons/Sig.py → scons/scons-local-2.2.0/SCons/Sig.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -21,7 +21,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Sig.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Sig.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
__doc__ = """Place-holder for the old SCons.Sig module hierarchy
View
4 scons/scons-local-2.1.0/SCons/Subst.py → scons/scons-local-2.2.0/SCons/Subst.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -26,7 +26,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Subst.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Subst.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import collections
import re
View
35 scons/scons-local-2.1.0/SCons/Taskmaster.py → scons/scons-local-2.2.0/SCons/Taskmaster.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -47,7 +47,7 @@
target(s) that it decides need to be evaluated and/or built.
"""
-__revision__ = "src/engine/SCons/Taskmaster.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Taskmaster.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
from itertools import chain
import operator
@@ -227,20 +227,26 @@ def execute(self):
if T: T.write(self.trace_message(u'Task.execute()', self.node))
try:
- everything_was_cached = 1
+ cached_targets = []
for t in self.targets:
- if t.retrieve_from_cache():
- # Call the .built() method without calling the
- # .push_to_cache() method, since we just got the
- # target from the cache and don't need to push
- # it back there.
- t.set_state(NODE_EXECUTED)
- t.built()
- else:
- everything_was_cached = 0
+ if not t.retrieve_from_cache():
break
- if not everything_was_cached:
+ cached_targets.append(t)
+ if len(cached_targets) < len(self.targets):
+ # Remove targets before building. It's possible that we
+ # partially retrieved targets from the cache, leaving
+ # them in read-only mode. That might cause the command
+ # to fail.
+ #
+ for t in cached_targets:
+ try:
+ t.fs.unlink(t.path)
+ except (IOError, OSError):
+ pass
self.targets[0].build()
+ else:
+ for t in cached_targets:
+ t.cached = 1
except SystemExit:
exc_value = sys.exc_info()[1]
raise SCons.Errors.ExplicitExit(self.targets[0], exc_value.code)
@@ -292,7 +298,8 @@ def executed_with_callbacks(self):
for side_effect in t.side_effects:
side_effect.set_state(NODE_NO_STATE)
t.set_state(NODE_EXECUTED)
- t.push_to_cache()
+ if not t.cached:
+ t.push_to_cache()
t.built()
t.visited()
View
4 scons/scons-local-2.1.0/SCons/Tool/386asm.py → scons/scons-local-2.2.0/SCons/Tool/386asm.py
@@ -10,7 +10,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Tool/386asm.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Tool/386asm.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
from SCons.Tool.PharLapCommon import addPharLapPaths
import SCons.Util
View
4 scons/scons-local-2.1.0/SCons/Tool/BitKeeper.py → scons/scons-local-2.2.0/SCons/Tool/BitKeeper.py
@@ -10,7 +10,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Tool/BitKeeper.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Tool/BitKeeper.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Action
import SCons.Builder
View
4 scons/scons-local-2.1.0/SCons/Tool/CVS.py → scons/scons-local-2.2.0/SCons/Tool/CVS.py
@@ -8,7 +8,7 @@
"""
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Tool/CVS.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Tool/CVS.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import SCons.Action
import SCons.Builder
View
4 scons/scons-local-2.1.0/SCons/Tool/FortranCommon.py → scons/scons-local-2.2.0/SCons/Tool/FortranCommon.py
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Tool/FortranCommon.py 5357 2011/09/09 21:31:03 bdeegan"
+__revision__ = "src/engine/SCons/Tool/FortranCommon.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
import re
import os.path
View
429 scons/scons-local-2.2.0/SCons/Tool/GettextCommon.py
@@ -0,0 +1,429 @@
+"""SCons.Tool.GettextCommon module
+
+Used by several tools of `gettext` toolset.
+"""
+
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The SCons Foundation
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+__revision__ = "src/engine/SCons/Tool/GettextCommon.py issue-2856:2676:d23b7a2f45e8 2012/08/05 15:38:28 garyo"
+
+import SCons.Warnings
+import re
+
+#############################################################################
+class XgettextToolWarning(SCons.Warnings.Warning): pass
+class XgettextNotFound(XgettextToolWarning): pass
+class MsginitToolWarning(SCons.Warnings.Warning): pass
+class MsginitNotFound(MsginitToolWarning): pass
+class MsgmergeToolWarning(SCons.Warnings.Warning): pass
+class MsgmergeNotFound(MsgmergeToolWarning): pass
+class MsgfmtToolWarning(SCons.Warnings.Warning): pass
+class MsgfmtNotFound(MsgfmtToolWarning): pass
+#############################################################################
+SCons.Warnings.enableWarningClass(XgettextToolWarning)
+SCons.Warnings.enableWarningClass(XgettextNotFound)
+SCons.Warnings.enableWarningClass(MsginitToolWarning)
+SCons.Warnings.enableWarningClass(MsginitNotFound)
+SCons.Warnings.enableWarningClass(MsgmergeToolWarning)
+SCons.Warnings.enableWarningClass(MsgmergeNotFound)
+SCons.Warnings.enableWarningClass(MsgfmtToolWarning)
+SCons.Warnings.enableWarningClass(MsgfmtNotFound)
+#############################################################################
+
+#############################################################################
+class _POTargetFactory(object):
+ """ A factory of `PO` target files.
+
+ Factory defaults differ from these of `SCons.Node.FS.FS`. We set `precious`
+ (this is required by builders and actions gettext) and `noclean` flags by
+ default for all produced nodes.
+ """
+ def __init__( self, env, nodefault = True, alias = None, precious = True
+ , noclean = True ):
+ """ Object constructor.
+
+ **Arguments**
+
+ - *env* (`SCons.Environment.Environment`)
+ - *nodefault* (`boolean`) - if `True`, produced nodes will be ignored
+ from default target `'.'`
+ - *alias* (`string`) - if provided, produced nodes will be automatically
+ added to this alias, and alias will be set as `AlwaysBuild`
+ - *precious* (`boolean`) - if `True`, the produced nodes will be set as
+ `Precious`.
+ - *noclen* (`boolean`) - if `True`, the produced nodes will be excluded
+ from `Clean`.
+ """
+ self.env = env
+ self.alias = alias
+ self.precious = precious
+ self.noclean = noclean
+ self.nodefault = nodefault
+
+ def _create_node(self, name, factory, directory = None, create = 1):
+ """ Create node, and set it up to factory settings. """
+ import SCons.Util
+ node = factory(name, directory, create)
+ node.set_noclean(self.noclean)
+ node.set_precious(self.precious)
+ if self.nodefault:
+ self.env.Ignore('.', node)
+ if self.alias:
+ self.env.AlwaysBuild(self.env.Alias(self.alias, node))
+ return node
+
+ def Entry(self, name, directory = None, create = 1):
+ """ Create `SCons.Node.FS.Entry` """
+ return self._create_node(name, self.env.fs.Entry, directory, create)
+
+ def File(self, name, directory = None, create = 1):
+ """ Create `SCons.Node.FS.File` """
+ return self._create_node(name, self.env.fs.File, directory, create)
+#############################################################################
+
+#############################################################################
+_re_comment = re.compile(r'(#[^\n\r]+)$', re.M)
+_re_lang = re.compile(r'([a-zA-Z0-9_]+)', re.M)
+#############################################################################
+def _read_linguas_from_files(env, linguas_files = None):
+ """ Parse `LINGUAS` file and return list of extracted languages """
+ import SCons.Util
+ import SCons.Environment
+ global _re_comment
+ global _re_lang
+ if not SCons.Util.is_List(linguas_files) \
+ and not SCons.Util.is_String(linguas_files) \
+ and not isinstance(linguas_files, SCons.Node.FS.Base) \
+ and linguas_files:
+ # If, linguas_files==True or such, then read 'LINGUAS' file.
+ linguas_files = [ 'LINGUAS' ]
+ if linguas_files is None:
+ return []
+ fnodes = env.arg2nodes(linguas_files)
+ linguas = []
+ for fnode in fnodes:
+ contents = _re_comment.sub("", fnode.get_text_contents())
+ ls = [ l for l in _re_lang.findall(contents) if l ]
+ linguas.extend(ls)
+ return linguas
+#############################################################################
+
+#############################################################################
+from SCons.Builder import BuilderBase
+#############################################################################
+class _POFileBuilder(BuilderBase):
+ """ `PO` file builder.
+
+ This is multi-target single-source builder. In typical situation the source
+ is single `POT` file, e.g. `messages.pot`, and there are multiple `PO`
+ targets to be updated from this `POT`. We must run
+ `SCons.Builder.BuilderBase._execute()` separatelly for each target to track
+ dependencies separatelly for each target file.
+
+ **NOTE**: if we call `SCons.Builder.BuilderBase._execute(.., target, ...)`
+ with target being list of all targets, all targets would be rebuilt each time
+ one of the targets from this list is missing. This would happen, for example,
+ when new language `ll` enters `LINGUAS_FILE` (at this moment there is no
+ `ll.po` file yet). To avoid this, we override
+ `SCons.Builder.BuilerBase._execute()` and call it separatelly for each
+ target. Here we also append to the target list the languages read from
+ `LINGUAS_FILE`.
+ """
+ #
+ #* The argument for overriding _execute(): We must use environment with
+ # builder overrides applied (see BuilderBase.__init__(). Here it comes for
+ # free.
+ #* The argument against using 'emitter': The emitter is called too late
+ # by BuilderBase._execute(). If user calls, for example:
+ #
+ # env.POUpdate(LINGUAS_FILE = 'LINGUAS')
+ #
+ # the builder throws error, because it is called with target=None,
+ # source=None and is trying to "generate" sources or target list first.
+ # If user calls
+ #
+ # env.POUpdate(['foo', 'baz'], LINGUAS_FILE = 'LINGUAS')
+ #
+ # the env.BuilderWrapper() calls our builder with target=None,
+ # source=['foo', 'baz']. The BuilderBase._execute() then splits execution
+ # and execute iterativelly (recursion) self._execute(None, source[i]).
+ # After that it calls emitter (which is quite too late). The emitter is
+ # also called in each iteration, what makes things yet worse.
+ def __init__(self, env, **kw):
+ if not 'suffix' in kw:
+ kw['suffix'] = '$POSUFFIX'
+ if not 'src_suffix' in kw:
+ kw['src_suffix'] = '$POTSUFFIX'
+ if not 'src_builder' in kw:
+ kw['src_builder'] = '_POTUpdateBuilder'
+ if not 'single_source' in kw:
+ kw['single_source'] = True
+ alias = None
+ if 'target_alias' in kw:
+ alias = kw['target_alias']
+ del kw['target_alias']
+ if not 'target_factory' in kw:
+ kw['target_factory'] = _POTargetFactory(env, alias=alias).File
+ BuilderBase.__init__(self, **kw)
+
+ def _execute(self, env, target, source, *args, **kw):
+ """ Execute builder's actions.
+
+ Here we append to `target` the languages read from `$LINGUAS_FILE` and
+ apply `SCons.Builder.BuilderBase._execute()` separatelly to each target.
+ The arguments and return value are same as for
+ `SCons.Builder.BuilderBase._execute()`.
+ """
+ import SCons.Util
+ import SCons.Node
+ linguas_files = None
+ if env.has_key('LINGUAS_FILE') and env['LINGUAS_FILE']:
+ linguas_files = env['LINGUAS_FILE']
+ # This prevents endless recursion loop (we'll be invoked once for
+ # each target appended here, we must not extend the list again).
+ env['LINGUAS_FILE'] = None
+ linguas = _read_linguas_from_files(env,linguas_files)
+ if SCons.Util.is_List(target):
+ target.extend(linguas)
+ elif target is not None:
+ target = [target] + linguas
+ else:
+ target = linguas
+ if not target:
+ # Let the SCons.BuilderBase to handle this patologic situation
+ return BuilderBase._execute( self, env, target, source, *args, **kw)
+ # The rest is ours
+ if not SCons.Util.is_List(target):
+ target = [ target ]
+ result = []
+ for tgt in target:
+ r = BuilderBase._execute( self, env, [tgt], source, *args, **kw)
+ result.extend(r)
+ if linguas_files is not None:
+ env['LINGUAS_FILE'] = linguas_files
+ return SCons.Node.NodeList(result)
+#############################################################################
+
+import SCons.Environment
+#############################################################################
+def _translate(env, target=[], source=SCons.Environment._null, *args, **kw):
+ """ Function for `Translate()` pseudo-builder """
+ pot = env.POTUpdate(None, source, *args, **kw)
+ po = env.POUpdate(target, pot, *args, **kw)
+ return po
+#############################################################################
+
+#############################################################################
+class RPaths(object):
+ """ Callable object, which returns pathnames relative to SCons current
+ working directory.
+
+ It seems like `SCons.Node.FS.Base.get_path()` returns absolute paths
+ for nodes that are outside of current working directory (`env.fs.getcwd()`).
+ Here, we often have `SConscript`, `POT` and `PO` files within `po/`
+ directory and source files (e.g. `*.c`) outside of it. When generating `POT`
+ template file, references to source files are written to `POT` template, so
+ a translator may later quickly jump to appropriate source file and line from
+ its `PO` editor (e.g. `poedit`). Relative paths in `PO` file are usually
+ interpreted by `PO` editor as paths relative to the place, where `PO` file
+ lives. The absolute paths would make resultant `POT` file nonportable, as
+ the references would be correct only on the machine, where `POT` file was
+ recently re-created. For such reason, we need a function, which always
+ returns relative paths. This is the purpose of `RPaths` callable object.
+
+ The `__call__` method returns paths relative to current woking directory, but
+ we assume, that *xgettext(1)* is run from the directory, where target file is
+ going to be created.
+
+ Note, that this may not work for files distributed over several hosts or
+ across different drives on windows. We assume here, that single local
+ filesystem holds both source files and target `POT` templates.
+
+ Intended use of `RPaths` - in `xgettext.py`::
+
+ def generate(env):
+ from GettextCommon import RPaths
+ ...
+ sources = '$( ${_concat( "", SOURCES, "", __env__, XgettextRPaths, TARGET, SOURCES)} $)'
+ env.Append(
+ ...
+ XGETTEXTCOM = 'XGETTEXT ... ' + sources,
+ ...
+ XgettextRPaths = RPaths(env)
+ )
+ """
+ # NOTE: This callable object returns pathnames of dirs/files relative to
+ # current working directory. The pathname remains relative also for entries
+ # that are outside of current working directory (node, that
+ # SCons.Node.FS.File and siblings return absolute path in such case). For
+ # simplicity we compute path relative to current working directory, this
+ # seems be enough for our purposes (don't need TARGET variable and
+ # SCons.Defaults.Variable_Caller stuff).
+
+ def __init__(self, env):
+ """ Initialize `RPaths` callable object.
+
+ **Arguments**:
+
+ - *env* - a `SCons.Environment.Environment` object, defines *current
+ working dir*.
+ """
+ self.env = env
+
+ # FIXME: I'm not sure, how it should be implemented (what the *args are in
+ # general, what is **kw).
+ def __call__(self, nodes, *args, **kw):
+ """ Return nodes' paths (strings) relative to current working directory.
+
+ **Arguments**:
+
+ - *nodes* ([`SCons.Node.FS.Base`]) - list of nodes.
+ - *args* - currently unused.
+ - *kw* - currently unused.
+
+ **Returns**:
+
+ - Tuple of strings, which represent paths relative to current working
+ directory (for given environment).
+ """
+ # os.path.relpath is available only on python >= 2.6. We use our own
+ # implementation. It's taken from BareNecessities package:
+ # http://jimmyg.org/work/code/barenecessities/index.html
+ from posixpath import curdir
+ def relpath(path, start=curdir):
+ import posixpath
+ """Return a relative version of a path"""
+ if not path:
+ raise ValueError("no path specified")
+ start_list = posixpath.abspath(start).split(posixpath.sep)
+ path_list = posixpath.abspath(path).split(posixpath.sep)
+ # Work out how much of the filepath is shared by start and path.
+ i = len(posixpath.commonprefix([start_list, path_list]))
+ rel_list = [posixpath.pardir] * (len(start_list)-i) + path_list[i:]
+ if not rel_list:
+ return posixpath.curdir
+ return posixpath.join(*rel_list)
+ import os
+ import SCons.Node.FS
+ rpaths = ()
+ cwd = self.env.fs.getcwd().get_abspath()
+ for node in nodes:
+ rpath = None
+ if isinstance(node, SCons.Node.FS.Base):
+ rpath = relpath(node.get_abspath(), cwd)
+ # FIXME: Other types possible here?
+ if rpath is not None:
+ rpaths += (rpath,)
+ return rpaths
+#############################################################################
+
+#############################################################################
+def _init_po_files(target, source, env):
+ """ Action function for `POInit` builder. """
+ nop = lambda target, source, env : 0
+ if env.has_key('POAUTOINIT'):
+ autoinit = env['POAUTOINIT']
+ else:
+ autoinit = False
+ # Well, if everything outside works well, this loop should do single
+ # iteration. Otherwise we are rebuilding all the targets even, if just
+ # one has changed (but is this out fault?).
+ for tgt in target:
+ if not tgt.exists():
+ if autoinit:
+ action = SCons.Action.Action('$MSGINITCOM', '$MSGINITCOMSTR')
+ else:
+ msg = 'File ' + repr(str(tgt)) + ' does not exist. ' \
+ + 'If you are a translator, you can create it through: \n' \
+ + '$MSGINITCOM'
+ action = SCons.Action.Action(nop, msg)
+ status = action([tgt], source, env)
+ if status: return status
+ return 0
+#############################################################################
+
+#############################################################################
+def _detect_xgettext(env):
+ """ Detects *xgettext(1)* binary """
+ if env.has_key('XGETTEXT'):
+ return env['XGETTEXT']
+ xgettext = env.Detect('xgettext');
+ if xgettext:
+ return xgettext
+ raise SCons.Errors.StopError(XgettextNotFound,"Could not detect xgettext")
+ return None
+#############################################################################
+def _xgettext_exists(env):
+ return _detect_xgettext(env)
+#############################################################################
+
+#############################################################################
+def _detect_msginit(env):
+ """ Detects *msginit(1)* program. """
+ if env.has_key('MSGINIT'):
+ return env['MSGINIT']
+ msginit = env.Detect('msginit');
+ if msginit:
+ return msginit
+ raise SCons.Errors.StopError(MsginitNotFound, "Could not detect msginit")
+ return None
+#############################################################################
+def _msginit_exists(env):
+ return _detect_msginit(env)
+#############################################################################
+
+#############################################################################
+def _detect_msgmerge(env):
+ """ Detects *msgmerge(1)* program. """
+ if env.has_key('MSGMERGE'):
+ return env['MSGMERGE']
+ msgmerge = env.Detect('msgmerge');
+ if msgmerge:
+ return msgmerge
+ raise SCons.Errors.StopError(MsgmergeNotFound, "Could not detect msgmerge")
+ return None
+#############################################################################
+def _msgmerge_exists(env):
+ return _detect_msgmerge(env)
+#############################################################################
+
+#############################################################################
+def _detect_msgfmt(env):
+ """ Detects *msgmfmt(1)* program. """
+ if env.has_key('MSGFMT'):
+ return env['MSGFMT']
+ msgfmt = env.Detect('msgfmt');
+ if msgfmt:
+ return msgfmt
+ raise SCons.Errors.StopError(MsgfmtNotFound, "Could not detect msgfmt")
+ return None
+#############################################################################
+def _msgfmt_exists(env):
+ return _detect_msgfmt(env)
+#############################################################################
+
+#############################################################################
+def tool_list(platform, env):
+ """ List tools that shall be generated by top-level `gettext` tool """
+ return [ 'xgettext', 'msginit', 'msgmerge', 'msgfmt' ]
+#############################################################################