qrscanner 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (480) hide show
  1. data/CHANGELOG +2 -0
  2. data/Manifest +478 -0
  3. data/README +41 -0
  4. data/Rakefile +9 -0
  5. data/bin/qrscanner +9 -0
  6. data/ext/qrscanner/extconf.rb +70 -0
  7. data/ext/qrscanner/qrscanner.c +32 -0
  8. data/ext/qrscanner/zxing/README +43 -0
  9. data/ext/qrscanner/zxing/SConscript +55 -0
  10. data/ext/qrscanner/zxing/SConstruct +7 -0
  11. data/ext/qrscanner/zxing/astyle-options +12 -0
  12. data/ext/qrscanner/zxing/blackboxtest.sh +45 -0
  13. data/ext/qrscanner/zxing/core/src/zxing/BarcodeFormat.cpp +38 -0
  14. data/ext/qrscanner/zxing/core/src/zxing/BarcodeFormat.h +42 -0
  15. data/ext/qrscanner/zxing/core/src/zxing/Binarizer.cpp +36 -0
  16. data/ext/qrscanner/zxing/core/src/zxing/Binarizer.h +46 -0
  17. data/ext/qrscanner/zxing/core/src/zxing/BinaryBitmap.cpp +67 -0
  18. data/ext/qrscanner/zxing/core/src/zxing/BinaryBitmap.h +57 -0
  19. data/ext/qrscanner/zxing/core/src/zxing/DecodeHints.cpp +111 -0
  20. data/ext/qrscanner/zxing/core/src/zxing/DecodeHints.h +69 -0
  21. data/ext/qrscanner/zxing/core/src/zxing/Exception.cpp +25 -0
  22. data/ext/qrscanner/zxing/core/src/zxing/Exception.h +39 -0
  23. data/ext/qrscanner/zxing/core/src/zxing/LuminanceSource.cpp +47 -0
  24. data/ext/qrscanner/zxing/core/src/zxing/LuminanceSource.h +49 -0
  25. data/ext/qrscanner/zxing/core/src/zxing/MultiFormatReader.cpp +102 -0
  26. data/ext/qrscanner/zxing/core/src/zxing/MultiFormatReader.h +49 -0
  27. data/ext/qrscanner/zxing/core/src/zxing/Reader.cpp +31 -0
  28. data/ext/qrscanner/zxing/core/src/zxing/Reader.h +40 -0
  29. data/ext/qrscanner/zxing/core/src/zxing/ReaderException.cpp +32 -0
  30. data/ext/qrscanner/zxing/core/src/zxing/ReaderException.h +34 -0
  31. data/ext/qrscanner/zxing/core/src/zxing/Result.cpp +59 -0
  32. data/ext/qrscanner/zxing/core/src/zxing/Result.h +53 -0
  33. data/ext/qrscanner/zxing/core/src/zxing/ResultPoint.cpp +27 -0
  34. data/ext/qrscanner/zxing/core/src/zxing/ResultPoint.h +39 -0
  35. data/ext/qrscanner/zxing/core/src/zxing/ResultPointCallback.cpp +26 -0
  36. data/ext/qrscanner/zxing/core/src/zxing/ResultPointCallback.h +39 -0
  37. data/ext/qrscanner/zxing/core/src/zxing/common/Array.cpp +22 -0
  38. data/ext/qrscanner/zxing/core/src/zxing/common/Array.h +207 -0
  39. data/ext/qrscanner/zxing/core/src/zxing/common/BitArray.cpp +129 -0
  40. data/ext/qrscanner/zxing/core/src/zxing/common/BitArray.h +55 -0
  41. data/ext/qrscanner/zxing/core/src/zxing/common/BitMatrix.cpp +178 -0
  42. data/ext/qrscanner/zxing/core/src/zxing/common/BitMatrix.h +65 -0
  43. data/ext/qrscanner/zxing/core/src/zxing/common/BitSource.cpp +75 -0
  44. data/ext/qrscanner/zxing/core/src/zxing/common/BitSource.h +67 -0
  45. data/ext/qrscanner/zxing/core/src/zxing/common/Counted.cpp +32 -0
  46. data/ext/qrscanner/zxing/core/src/zxing/common/Counted.h +205 -0
  47. data/ext/qrscanner/zxing/core/src/zxing/common/DecoderResult.cpp +37 -0
  48. data/ext/qrscanner/zxing/core/src/zxing/common/DecoderResult.h +43 -0
  49. data/ext/qrscanner/zxing/core/src/zxing/common/DetectorResult.cpp +41 -0
  50. data/ext/qrscanner/zxing/core/src/zxing/common/DetectorResult.h +46 -0
  51. data/ext/qrscanner/zxing/core/src/zxing/common/EdgeDetector.cpp +191 -0
  52. data/ext/qrscanner/zxing/core/src/zxing/common/EdgeDetector.h +38 -0
  53. data/ext/qrscanner/zxing/core/src/zxing/common/GlobalHistogramBinarizer.cpp +209 -0
  54. data/ext/qrscanner/zxing/core/src/zxing/common/GlobalHistogramBinarizer.h +47 -0
  55. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleLuminanceSource.cpp +70 -0
  56. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleLuminanceSource.h +62 -0
  57. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleRotatedLuminanceSource.cpp +65 -0
  58. data/ext/qrscanner/zxing/core/src/zxing/common/GreyscaleRotatedLuminanceSource.h +60 -0
  59. data/ext/qrscanner/zxing/core/src/zxing/common/GridSampler.cpp +101 -0
  60. data/ext/qrscanner/zxing/core/src/zxing/common/GridSampler.h +43 -0
  61. data/ext/qrscanner/zxing/core/src/zxing/common/HybridBinarizer.cpp +168 -0
  62. data/ext/qrscanner/zxing/core/src/zxing/common/HybridBinarizer.h +55 -0
  63. data/ext/qrscanner/zxing/core/src/zxing/common/IllegalArgumentException.cpp +31 -0
  64. data/ext/qrscanner/zxing/core/src/zxing/common/IllegalArgumentException.h +33 -0
  65. data/ext/qrscanner/zxing/core/src/zxing/common/PerspectiveTransform.cpp +107 -0
  66. data/ext/qrscanner/zxing/core/src/zxing/common/PerspectiveTransform.h +49 -0
  67. data/ext/qrscanner/zxing/core/src/zxing/common/Point.h +47 -0
  68. data/ext/qrscanner/zxing/core/src/zxing/common/Str.cpp +38 -0
  69. data/ext/qrscanner/zxing/core/src/zxing/common/Str.h +40 -0
  70. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256.cpp +136 -0
  71. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256.h +68 -0
  72. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256Poly.cpp +198 -0
  73. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/GF256Poly.h +53 -0
  74. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonDecoder.cpp +193 -0
  75. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonDecoder.h +46 -0
  76. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonException.cpp +30 -0
  77. data/ext/qrscanner/zxing/core/src/zxing/common/reedsolomon/ReedSolomonException.h +33 -0
  78. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/DataMatrixReader.cpp +82 -0
  79. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/DataMatrixReader.h +45 -0
  80. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/Version.cpp +199 -0
  81. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/Version.h +87 -0
  82. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/BitMatrixParser.cpp +364 -0
  83. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/BitMatrixParser.h +59 -0
  84. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DataBlock.cpp +113 -0
  85. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DataBlock.h +49 -0
  86. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DecodedBitStreamParser.cpp +404 -0
  87. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/DecodedBitStreamParser.h +103 -0
  88. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/Decoder.cpp +96 -0
  89. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/decoder/Decoder.h +50 -0
  90. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/CornerPoint.cpp +54 -0
  91. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/CornerPoint.h +47 -0
  92. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/Detector.cpp +315 -0
  93. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/Detector.h +79 -0
  94. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/MonochromeRectangleDetector.cpp +172 -0
  95. data/ext/qrscanner/zxing/core/src/zxing/datamatrix/detector/MonochromeRectangleDetector.h +61 -0
  96. data/ext/qrscanner/zxing/core/src/zxing/oned/Code128Reader.cpp +490 -0
  97. data/ext/qrscanner/zxing/core/src/zxing/oned/Code128Reader.h +63 -0
  98. data/ext/qrscanner/zxing/core/src/zxing/oned/Code39Reader.cpp +352 -0
  99. data/ext/qrscanner/zxing/core/src/zxing/oned/Code39Reader.h +58 -0
  100. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN13Reader.cpp +95 -0
  101. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN13Reader.h +44 -0
  102. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN8Reader.cpp +73 -0
  103. data/ext/qrscanner/zxing/core/src/zxing/oned/EAN8Reader.h +41 -0
  104. data/ext/qrscanner/zxing/core/src/zxing/oned/ITFReader.cpp +363 -0
  105. data/ext/qrscanner/zxing/core/src/zxing/oned/ITFReader.h +56 -0
  106. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatOneDReader.cpp +66 -0
  107. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatOneDReader.h +38 -0
  108. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatUPCEANReader.cpp +87 -0
  109. data/ext/qrscanner/zxing/core/src/zxing/oned/MultiFormatUPCEANReader.h +38 -0
  110. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDReader.cpp +206 -0
  111. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDReader.h +50 -0
  112. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDResultPoint.cpp +36 -0
  113. data/ext/qrscanner/zxing/core/src/zxing/oned/OneDResultPoint.h +40 -0
  114. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCAReader.cpp +65 -0
  115. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCAReader.h +49 -0
  116. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEANReader.cpp +311 -0
  117. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEANReader.h +77 -0
  118. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEReader.cpp +143 -0
  119. data/ext/qrscanner/zxing/core/src/zxing/oned/UPCEReader.h +47 -0
  120. data/ext/qrscanner/zxing/core/src/zxing/qrcode/ErrorCorrectionLevel.cpp +49 -0
  121. data/ext/qrscanner/zxing/core/src/zxing/qrcode/ErrorCorrectionLevel.h +46 -0
  122. data/ext/qrscanner/zxing/core/src/zxing/qrcode/FormatInformation.cpp +108 -0
  123. data/ext/qrscanner/zxing/core/src/zxing/qrcode/FormatInformation.h +54 -0
  124. data/ext/qrscanner/zxing/core/src/zxing/qrcode/QRCodeReader.cpp +82 -0
  125. data/ext/qrscanner/zxing/core/src/zxing/qrcode/QRCodeReader.h +43 -0
  126. data/ext/qrscanner/zxing/core/src/zxing/qrcode/Version.cpp +557 -0
  127. data/ext/qrscanner/zxing/core/src/zxing/qrcode/Version.h +85 -0
  128. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/BitMatrixParser.cpp +191 -0
  129. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/BitMatrixParser.h +56 -0
  130. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataBlock.cpp +118 -0
  131. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataBlock.h +50 -0
  132. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataMask.cpp +159 -0
  133. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DataMask.h +50 -0
  134. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DecodedBitStreamParser.cpp +353 -0
  135. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/DecodedBitStreamParser.h +59 -0
  136. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Decoder.cpp +103 -0
  137. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Decoder.h +47 -0
  138. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Mode.cpp +73 -0
  139. data/ext/qrscanner/zxing/core/src/zxing/qrcode/decoder/Mode.h +50 -0
  140. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPattern.cpp +46 -0
  141. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPattern.h +45 -0
  142. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPatternFinder.cpp +209 -0
  143. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/AlignmentPatternFinder.h +68 -0
  144. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/Detector.cpp +286 -0
  145. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/Detector.h +64 -0
  146. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPattern.cpp +58 -0
  147. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPattern.h +48 -0
  148. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternFinder.cpp +540 -0
  149. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternFinder.h +69 -0
  150. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternInfo.cpp +41 -0
  151. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/FinderPatternInfo.h +47 -0
  152. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/QREdgeDetector.cpp +169 -0
  153. data/ext/qrscanner/zxing/core/src/zxing/qrcode/detector/QREdgeDetector.h +48 -0
  154. data/ext/qrscanner/zxing/core/tests/src/TestRunner.cpp +30 -0
  155. data/ext/qrscanner/zxing/core/tests/src/common/BitArrayTest.cpp +96 -0
  156. data/ext/qrscanner/zxing/core/tests/src/common/BitArrayTest.h +50 -0
  157. data/ext/qrscanner/zxing/core/tests/src/common/BitMatrixTest.cpp +107 -0
  158. data/ext/qrscanner/zxing/core/tests/src/common/BitMatrixTest.h +55 -0
  159. data/ext/qrscanner/zxing/core/tests/src/common/BitSourceTest.cpp +49 -0
  160. data/ext/qrscanner/zxing/core/tests/src/common/BitSourceTest.h +42 -0
  161. data/ext/qrscanner/zxing/core/tests/src/common/BlackPointEstimatorTest.cpp +47 -0
  162. data/ext/qrscanner/zxing/core/tests/src/common/BlackPointEstimatorTest.h +45 -0
  163. data/ext/qrscanner/zxing/core/tests/src/common/CountedTest.cpp +54 -0
  164. data/ext/qrscanner/zxing/core/tests/src/common/CountedTest.h +46 -0
  165. data/ext/qrscanner/zxing/core/tests/src/common/PerspectiveTransformTest.cpp +69 -0
  166. data/ext/qrscanner/zxing/core/tests/src/common/PerspectiveTransformTest.h +47 -0
  167. data/ext/qrscanner/zxing/core/tests/src/common/reedsolomon/ReedSolomonTest.cpp +130 -0
  168. data/ext/qrscanner/zxing/core/tests/src/common/reedsolomon/ReedSolomonTest.h +62 -0
  169. data/ext/qrscanner/zxing/core/tests/src/qrcode/ErrorCorrectionLevelTest.cpp +47 -0
  170. data/ext/qrscanner/zxing/core/tests/src/qrcode/ErrorCorrectionLevelTest.h +45 -0
  171. data/ext/qrscanner/zxing/core/tests/src/qrcode/FormatInformationTest.cpp +70 -0
  172. data/ext/qrscanner/zxing/core/tests/src/qrcode/FormatInformationTest.h +47 -0
  173. data/ext/qrscanner/zxing/core/tests/src/qrcode/VersionTest.cpp +88 -0
  174. data/ext/qrscanner/zxing/core/tests/src/qrcode/VersionTest.h +49 -0
  175. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/DataMaskTest.cpp +134 -0
  176. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/DataMaskTest.h +91 -0
  177. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/ModeTest.cpp +52 -0
  178. data/ext/qrscanner/zxing/core/tests/src/qrcode/decoder/ModeTest.h +47 -0
  179. data/ext/qrscanner/zxing/format +2 -0
  180. data/ext/qrscanner/zxing/magick/src/MagickBitmapSource.cpp +99 -0
  181. data/ext/qrscanner/zxing/magick/src/MagickBitmapSource.h +49 -0
  182. data/ext/qrscanner/zxing/magick/src/example.cpp +83 -0
  183. data/ext/qrscanner/zxing/magick/src/main.cpp +241 -0
  184. data/ext/qrscanner/zxing/magick/src/qrscanner.cpp +188 -0
  185. data/ext/qrscanner/zxing/osx.xcodeproj/project.pbxproj +1045 -0
  186. data/ext/qrscanner/zxing/scons/scons-LICENSE +25 -0
  187. data/ext/qrscanner/zxing/scons/scons-README +204 -0
  188. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Action.py +1241 -0
  189. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Action.pyc +0 -0
  190. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Builder.py +877 -0
  191. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Builder.pyc +0 -0
  192. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/CacheDir.py +216 -0
  193. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/CacheDir.pyc +0 -0
  194. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Conftest.py +793 -0
  195. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Conftest.pyc +0 -0
  196. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Debug.py +220 -0
  197. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Debug.pyc +0 -0
  198. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Defaults.py +480 -0
  199. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Defaults.pyc +0 -0
  200. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Environment.py +2318 -0
  201. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Environment.pyc +0 -0
  202. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Errors.py +205 -0
  203. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Errors.pyc +0 -0
  204. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Executor.py +633 -0
  205. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Executor.pyc +0 -0
  206. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Job.py +435 -0
  207. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Job.pyc +0 -0
  208. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Memoize.py +244 -0
  209. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Memoize.pyc +0 -0
  210. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Alias.py +152 -0
  211. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Alias.pyc +0 -0
  212. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/FS.py +3142 -0
  213. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/FS.pyc +0 -0
  214. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Python.py +128 -0
  215. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/Python.pyc +0 -0
  216. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/__init__.py +1328 -0
  217. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Node/__init__.pyc +0 -0
  218. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/BoolOption.py +50 -0
  219. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/BoolOption.pyc +0 -0
  220. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/EnumOption.py +50 -0
  221. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/EnumOption.pyc +0 -0
  222. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/ListOption.py +50 -0
  223. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/ListOption.pyc +0 -0
  224. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PackageOption.py +50 -0
  225. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PackageOption.pyc +0 -0
  226. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PathOption.py +76 -0
  227. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/PathOption.pyc +0 -0
  228. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/__init__.py +67 -0
  229. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Options/__init__.pyc +0 -0
  230. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/PathList.py +231 -0
  231. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/PathList.pyc +0 -0
  232. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/__init__.py +241 -0
  233. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/__init__.pyc +0 -0
  234. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/aix.py +69 -0
  235. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/cygwin.py +55 -0
  236. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/darwin.py +46 -0
  237. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/hpux.py +46 -0
  238. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/irix.py +44 -0
  239. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/os2.py +58 -0
  240. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/posix.py +263 -0
  241. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/posix.pyc +0 -0
  242. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/sunos.py +50 -0
  243. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Platform/win32.py +385 -0
  244. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConf.py +1030 -0
  245. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConf.pyc +0 -0
  246. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConsign.py +383 -0
  247. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/SConsign.pyc +0 -0
  248. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/C.py +132 -0
  249. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/C.pyc +0 -0
  250. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/D.py +73 -0
  251. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/D.pyc +0 -0
  252. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Dir.py +109 -0
  253. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Dir.pyc +0 -0
  254. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Fortran.py +316 -0
  255. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Fortran.pyc +0 -0
  256. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/IDL.py +48 -0
  257. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/LaTeX.py +362 -0
  258. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/LaTeX.pyc +0 -0
  259. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Prog.py +101 -0
  260. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/Prog.pyc +0 -0
  261. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/RC.py +55 -0
  262. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/__init__.py +413 -0
  263. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Scanner/__init__.pyc +0 -0
  264. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Interactive.py +384 -0
  265. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Interactive.pyc +0 -0
  266. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Main.py +1334 -0
  267. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/Main.pyc +0 -0
  268. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConsOptions.py +939 -0
  269. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConsOptions.pyc +0 -0
  270. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConscript.py +640 -0
  271. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/SConscript.pyc +0 -0
  272. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/__init__.py +412 -0
  273. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Script/__init__.pyc +0 -0
  274. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Sig.py +63 -0
  275. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Subst.py +904 -0
  276. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Subst.pyc +0 -0
  277. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Taskmaster.py +1017 -0
  278. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Taskmaster.pyc +0 -0
  279. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/386asm.py +61 -0
  280. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/BitKeeper.py +67 -0
  281. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/BitKeeper.pyc +0 -0
  282. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/CVS.py +73 -0
  283. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/CVS.pyc +0 -0
  284. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/FortranCommon.py +246 -0
  285. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/FortranCommon.pyc +0 -0
  286. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/JavaCommon.py +323 -0
  287. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/JavaCommon.pyc +0 -0
  288. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/__init__.py +56 -0
  289. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/arch.py +61 -0
  290. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/common.py +240 -0
  291. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/netframework.py +82 -0
  292. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/sdk.py +391 -0
  293. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/vc.py +456 -0
  294. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/MSCommon/vs.py +499 -0
  295. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/Perforce.py +103 -0
  296. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/Perforce.pyc +0 -0
  297. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/PharLapCommon.py +137 -0
  298. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/PharLapCommon.pyc +0 -0
  299. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/RCS.py +64 -0
  300. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/RCS.pyc +0 -0
  301. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/SCCS.py +64 -0
  302. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/SCCS.pyc +0 -0
  303. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/Subversion.py +71 -0
  304. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/__init__.py +681 -0
  305. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/__init__.pyc +0 -0
  306. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixc++.py +82 -0
  307. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixcc.py +74 -0
  308. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixf77.py +80 -0
  309. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/aixlink.py +76 -0
  310. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/applelink.py +71 -0
  311. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ar.py +63 -0
  312. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ar.pyc +0 -0
  313. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/as.py +78 -0
  314. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/as.pyc +0 -0
  315. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/bcc32.py +81 -0
  316. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/c++.py +99 -0
  317. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/c++.pyc +0 -0
  318. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/cc.py +102 -0
  319. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/cc.pyc +0 -0
  320. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/cvf.py +58 -0
  321. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/default.py +50 -0
  322. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/default.pyc +0 -0
  323. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dmd.py +223 -0
  324. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dmd.pyc +0 -0
  325. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvi.py +64 -0
  326. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvipdf.py +124 -0
  327. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvipdf.pyc +0 -0
  328. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvips.py +94 -0
  329. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/dvips.pyc +0 -0
  330. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f77.py +62 -0
  331. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f77.pyc +0 -0
  332. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f90.py +62 -0
  333. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f90.pyc +0 -0
  334. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f95.py +63 -0
  335. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/f95.pyc +0 -0
  336. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/filesystem.py +98 -0
  337. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/filesystem.pyc +0 -0
  338. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/fortran.py +62 -0
  339. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/fortran.pyc +0 -0
  340. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g++.py +90 -0
  341. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g++.pyc +0 -0
  342. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g77.py +73 -0
  343. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/g77.pyc +0 -0
  344. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gas.py +53 -0
  345. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gas.pyc +0 -0
  346. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gcc.py +80 -0
  347. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gcc.pyc +0 -0
  348. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gfortran.py +64 -0
  349. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gfortran.pyc +0 -0
  350. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gnulink.py +63 -0
  351. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gnulink.pyc +0 -0
  352. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gs.py +81 -0
  353. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/gs.pyc +0 -0
  354. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/hpc++.py +84 -0
  355. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/hpcc.py +53 -0
  356. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/hplink.py +77 -0
  357. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/icc.py +59 -0
  358. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/icl.py +52 -0
  359. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifl.py +72 -0
  360. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifl.pyc +0 -0
  361. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifort.py +88 -0
  362. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ifort.pyc +0 -0
  363. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ilink.py +59 -0
  364. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ilink32.py +60 -0
  365. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/install.py +229 -0
  366. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/install.pyc +0 -0
  367. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/intelc.py +482 -0
  368. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/ipkg.py +67 -0
  369. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/jar.py +110 -0
  370. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/jar.pyc +0 -0
  371. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javac.py +230 -0
  372. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javac.pyc +0 -0
  373. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javah.py +137 -0
  374. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/javah.pyc +0 -0
  375. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/latex.py +79 -0
  376. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/latex.pyc +0 -0
  377. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/lex.py +97 -0
  378. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/lex.pyc +0 -0
  379. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/link.py +121 -0
  380. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/link.pyc +0 -0
  381. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/linkloc.py +112 -0
  382. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/m4.py +63 -0
  383. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/m4.pyc +0 -0
  384. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/masm.py +77 -0
  385. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/midl.py +88 -0
  386. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mingw.py +158 -0
  387. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mslib.py +64 -0
  388. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mslink.py +266 -0
  389. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mssdk.py +50 -0
  390. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/msvc.py +268 -0
  391. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/msvs.py +1388 -0
  392. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mwcc.py +207 -0
  393. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/mwld.py +107 -0
  394. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/nasm.py +72 -0
  395. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/__init__.py +312 -0
  396. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/ipk.py +185 -0
  397. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/msi.py +527 -0
  398. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/rpm.py +365 -0
  399. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/src_tarbz2.py +43 -0
  400. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/src_targz.py +43 -0
  401. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/src_zip.py +43 -0
  402. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/tarbz2.py +44 -0
  403. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/targz.py +44 -0
  404. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/packaging/zip.py +44 -0
  405. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdf.py +78 -0
  406. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdf.pyc +0 -0
  407. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdflatex.py +83 -0
  408. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdflatex.pyc +0 -0
  409. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdftex.py +108 -0
  410. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/pdftex.pyc +0 -0
  411. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/qt.py +336 -0
  412. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rmic.py +120 -0
  413. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rmic.pyc +0 -0
  414. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpcgen.py +70 -0
  415. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpcgen.pyc +0 -0
  416. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpm.py +132 -0
  417. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/rpm.pyc +0 -0
  418. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgiar.py +68 -0
  419. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgic++.py +58 -0
  420. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgicc.py +53 -0
  421. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sgilink.py +63 -0
  422. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunar.py +67 -0
  423. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunc++.py +142 -0
  424. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/suncc.py +58 -0
  425. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunf77.py +63 -0
  426. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunf90.py +64 -0
  427. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunf95.py +64 -0
  428. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/sunlink.py +77 -0
  429. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/swig.py +182 -0
  430. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/swig.pyc +0 -0
  431. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tar.py +73 -0
  432. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tar.pyc +0 -0
  433. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tex.py +807 -0
  434. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tex.pyc +0 -0
  435. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/textfile.py +175 -0
  436. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/tlib.py +53 -0
  437. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/wix.py +99 -0
  438. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/wix.pyc +0 -0
  439. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/yacc.py +130 -0
  440. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/yacc.pyc +0 -0
  441. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/zip.py +99 -0
  442. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Tool/zip.pyc +0 -0
  443. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Util.py +1496 -0
  444. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Util.pyc +0 -0
  445. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/BoolVariable.py +89 -0
  446. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/BoolVariable.pyc +0 -0
  447. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/EnumVariable.py +103 -0
  448. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/EnumVariable.pyc +0 -0
  449. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/ListVariable.py +135 -0
  450. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/ListVariable.pyc +0 -0
  451. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PackageVariable.py +106 -0
  452. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PackageVariable.pyc +0 -0
  453. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PathVariable.py +147 -0
  454. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/PathVariable.pyc +0 -0
  455. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/__init__.py +312 -0
  456. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Variables/__init__.pyc +0 -0
  457. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Warnings.py +246 -0
  458. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/Warnings.pyc +0 -0
  459. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/__init__.py +49 -0
  460. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/__init__.pyc +0 -0
  461. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/__init__.py +237 -0
  462. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/__init__.pyc +0 -0
  463. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_builtins.py +150 -0
  464. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_builtins.pyc +0 -0
  465. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_collections.py +45 -0
  466. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_dbm.py +45 -0
  467. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_hashlib.py +76 -0
  468. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_io.py +45 -0
  469. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_sets.py +563 -0
  470. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/compat/_scons_subprocess.py +1281 -0
  471. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/cpp.py +589 -0
  472. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/cpp.pyc +0 -0
  473. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/dblite.py +251 -0
  474. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/dblite.pyc +0 -0
  475. data/ext/qrscanner/zxing/scons/scons-local-2.0.0.final.0/SCons/exitfuncs.py +77 -0
  476. data/ext/qrscanner/zxing/scons/scons-time.py +1544 -0
  477. data/ext/qrscanner/zxing/scons/scons.py +196 -0
  478. data/ext/qrscanner/zxing/scons/sconsign.py +513 -0
  479. data/qrscanner.gemspec +33 -0
  480. metadata +1023 -0
@@ -0,0 +1,939 @@
1
+ #
2
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included
13
+ # in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
16
+ # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
17
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #
23
+
24
+ __revision__ = "src/engine/SCons/Script/SConsOptions.py 5023 2010/06/14 22:05:46 scons"
25
+
26
+ import optparse
27
+ import re
28
+ import sys
29
+ import textwrap
30
+
31
+ no_hyphen_re = re.compile(r'(\s+|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))')
32
+
33
+ try:
34
+ from gettext import gettext
35
+ except ImportError:
36
+ def gettext(message):
37
+ return message
38
+ _ = gettext
39
+
40
+ import SCons.Node.FS
41
+ import SCons.Warnings
42
+
43
+ OptionValueError = optparse.OptionValueError
44
+ SUPPRESS_HELP = optparse.SUPPRESS_HELP
45
+
46
+ diskcheck_all = SCons.Node.FS.diskcheck_types()
47
+
48
+ def diskcheck_convert(value):
49
+ if value is None:
50
+ return []
51
+ if not SCons.Util.is_List(value):
52
+ value = value.split(',')
53
+ result = []
54
+ for v in value:
55
+ v = v.lower()
56
+ if v == 'all':
57
+ result = diskcheck_all
58
+ elif v == 'none':
59
+ result = []
60
+ elif v in diskcheck_all:
61
+ result.append(v)
62
+ else:
63
+ raise ValueError(v)
64
+ return result
65
+
66
+ class SConsValues(optparse.Values):
67
+ """
68
+ Holder class for uniform access to SCons options, regardless
69
+ of whether or not they can be set on the command line or in the
70
+ SConscript files (using the SetOption() function).
71
+
72
+ A SCons option value can originate three different ways:
73
+
74
+ 1) set on the command line;
75
+ 2) set in an SConscript file;
76
+ 3) the default setting (from the the op.add_option()
77
+ calls in the Parser() function, below).
78
+
79
+ The command line always overrides a value set in a SConscript file,
80
+ which in turn always overrides default settings. Because we want
81
+ to support user-specified options in the SConscript file itself,
82
+ though, we may not know about all of the options when the command
83
+ line is first parsed, so we can't make all the necessary precedence
84
+ decisions at the time the option is configured.
85
+
86
+ The solution implemented in this class is to keep these different sets
87
+ of settings separate (command line, SConscript file, and default)
88
+ and to override the __getattr__() method to check them in turn.
89
+ This should allow the rest of the code to just fetch values as
90
+ attributes of an instance of this class, without having to worry
91
+ about where they came from.
92
+
93
+ Note that not all command line options are settable from SConscript
94
+ files, and the ones that are must be explicitly added to the
95
+ "settable" list in this class, and optionally validated and coerced
96
+ in the set_option() method.
97
+ """
98
+
99
+ def __init__(self, defaults):
100
+ self.__dict__['__defaults__'] = defaults
101
+ self.__dict__['__SConscript_settings__'] = {}
102
+
103
+ def __getattr__(self, attr):
104
+ """
105
+ Fetches an options value, checking first for explicit settings
106
+ from the command line (which are direct attributes), then the
107
+ SConscript file settings, then the default values.
108
+ """
109
+ try:
110
+ return self.__dict__[attr]
111
+ except KeyError:
112
+ try:
113
+ return self.__dict__['__SConscript_settings__'][attr]
114
+ except KeyError:
115
+ return getattr(self.__dict__['__defaults__'], attr)
116
+
117
+ settable = [
118
+ 'clean',
119
+ 'diskcheck',
120
+ 'duplicate',
121
+ 'help',
122
+ 'implicit_cache',
123
+ 'max_drift',
124
+ 'md5_chunksize',
125
+ 'no_exec',
126
+ 'num_jobs',
127
+ 'random',
128
+ 'stack_size',
129
+ 'warn',
130
+ ]
131
+
132
+ def set_option(self, name, value):
133
+ """
134
+ Sets an option from an SConscript file.
135
+ """
136
+ if not name in self.settable:
137
+ raise SCons.Errors.UserError("This option is not settable from a SConscript file: %s"%name)
138
+
139
+ if name == 'num_jobs':
140
+ try:
141
+ value = int(value)
142
+ if value < 1:
143
+ raise ValueError
144
+ except ValueError:
145
+ raise SCons.Errors.UserError("A positive integer is required: %s"%repr(value))
146
+ elif name == 'max_drift':
147
+ try:
148
+ value = int(value)
149
+ except ValueError:
150
+ raise SCons.Errors.UserError("An integer is required: %s"%repr(value))
151
+ elif name == 'duplicate':
152
+ try:
153
+ value = str(value)
154
+ except ValueError:
155
+ raise SCons.Errors.UserError("A string is required: %s"%repr(value))
156
+ if not value in SCons.Node.FS.Valid_Duplicates:
157
+ raise SCons.Errors.UserError("Not a valid duplication style: %s" % value)
158
+ # Set the duplicate style right away so it can affect linking
159
+ # of SConscript files.
160
+ SCons.Node.FS.set_duplicate(value)
161
+ elif name == 'diskcheck':
162
+ try:
163
+ value = diskcheck_convert(value)
164
+ except ValueError, v:
165
+ raise SCons.Errors.UserError("Not a valid diskcheck value: %s"%v)
166
+ if 'diskcheck' not in self.__dict__:
167
+ # No --diskcheck= option was specified on the command line.
168
+ # Set this right away so it can affect the rest of the
169
+ # file/Node lookups while processing the SConscript files.
170
+ SCons.Node.FS.set_diskcheck(value)
171
+ elif name == 'stack_size':
172
+ try:
173
+ value = int(value)
174
+ except ValueError:
175
+ raise SCons.Errors.UserError("An integer is required: %s"%repr(value))
176
+ elif name == 'md5_chunksize':
177
+ try:
178
+ value = int(value)
179
+ except ValueError:
180
+ raise SCons.Errors.UserError("An integer is required: %s"%repr(value))
181
+ elif name == 'warn':
182
+ if SCons.Util.is_String(value):
183
+ value = [value]
184
+ value = self.__SConscript_settings__.get(name, []) + value
185
+ SCons.Warnings.process_warn_strings(value)
186
+
187
+ self.__SConscript_settings__[name] = value
188
+
189
+ class SConsOption(optparse.Option):
190
+ def convert_value(self, opt, value):
191
+ if value is not None:
192
+ if self.nargs in (1, '?'):
193
+ return self.check_value(opt, value)
194
+ else:
195
+ return tuple([self.check_value(opt, v) for v in value])
196
+
197
+ def process(self, opt, value, values, parser):
198
+
199
+ # First, convert the value(s) to the right type. Howl if any
200
+ # value(s) are bogus.
201
+ value = self.convert_value(opt, value)
202
+
203
+ # And then take whatever action is expected of us.
204
+ # This is a separate method to make life easier for
205
+ # subclasses to add new actions.
206
+ return self.take_action(
207
+ self.action, self.dest, opt, value, values, parser)
208
+
209
+ def _check_nargs_optional(self):
210
+ if self.nargs == '?' and self._short_opts:
211
+ fmt = "option %s: nargs='?' is incompatible with short options"
212
+ raise SCons.Errors.UserError(fmt % self._short_opts[0])
213
+
214
+ try:
215
+ _orig_CONST_ACTIONS = optparse.Option.CONST_ACTIONS
216
+
217
+ _orig_CHECK_METHODS = optparse.Option.CHECK_METHODS
218
+
219
+ except AttributeError:
220
+ # optparse.Option had no CONST_ACTIONS before Python 2.5.
221
+
222
+ _orig_CONST_ACTIONS = ("store_const",)
223
+
224
+ def _check_const(self):
225
+ if self.action not in self.CONST_ACTIONS and self.const is not None:
226
+ raise OptionError(
227
+ "'const' must not be supplied for action %r" % self.action,
228
+ self)
229
+
230
+ # optparse.Option collects its list of unbound check functions
231
+ # up front. This sucks because it means we can't just override
232
+ # the _check_const() function like a normal method, we have to
233
+ # actually replace it in the list. This seems to be the most
234
+ # straightforward way to do that.
235
+
236
+ _orig_CHECK_METHODS = [optparse.Option._check_action,
237
+ optparse.Option._check_type,
238
+ optparse.Option._check_choice,
239
+ optparse.Option._check_dest,
240
+ _check_const,
241
+ optparse.Option._check_nargs,
242
+ optparse.Option._check_callback]
243
+
244
+ CHECK_METHODS = _orig_CHECK_METHODS + [_check_nargs_optional]
245
+
246
+ CONST_ACTIONS = _orig_CONST_ACTIONS + optparse.Option.TYPED_ACTIONS
247
+
248
+ class SConsOptionGroup(optparse.OptionGroup):
249
+ """
250
+ A subclass for SCons-specific option groups.
251
+
252
+ The only difference between this and the base class is that we print
253
+ the group's help text flush left, underneath their own title but
254
+ lined up with the normal "SCons Options".
255
+ """
256
+ def format_help(self, formatter):
257
+ """
258
+ Format an option group's help text, outdenting the title so it's
259
+ flush with the "SCons Options" title we print at the top.
260
+ """
261
+ formatter.dedent()
262
+ result = formatter.format_heading(self.title)
263
+ formatter.indent()
264
+ result = result + optparse.OptionContainer.format_help(self, formatter)
265
+ return result
266
+
267
+ class SConsOptionParser(optparse.OptionParser):
268
+ preserve_unknown_options = False
269
+
270
+ def error(self, msg):
271
+ self.print_usage(sys.stderr)
272
+ sys.stderr.write("SCons error: %s\n" % msg)
273
+ sys.exit(2)
274
+
275
+ def _process_long_opt(self, rargs, values):
276
+ """
277
+ SCons-specific processing of long options.
278
+
279
+ This is copied directly from the normal
280
+ optparse._process_long_opt() method, except that, if configured
281
+ to do so, we catch the exception thrown when an unknown option
282
+ is encountered and just stick it back on the "leftover" arguments
283
+ for later (re-)processing.
284
+ """
285
+ arg = rargs.pop(0)
286
+
287
+ # Value explicitly attached to arg? Pretend it's the next
288
+ # argument.
289
+ if "=" in arg:
290
+ (opt, next_arg) = arg.split("=", 1)
291
+ rargs.insert(0, next_arg)
292
+ had_explicit_value = True
293
+ else:
294
+ opt = arg
295
+ had_explicit_value = False
296
+
297
+ try:
298
+ opt = self._match_long_opt(opt)
299
+ except optparse.BadOptionError:
300
+ if self.preserve_unknown_options:
301
+ # SCons-specific: if requested, add unknown options to
302
+ # the "leftover arguments" list for later processing.
303
+ self.largs.append(arg)
304
+ if had_explicit_value:
305
+ # The unknown option will be re-processed later,
306
+ # so undo the insertion of the explicit value.
307
+ rargs.pop(0)
308
+ return
309
+ raise
310
+
311
+ option = self._long_opt[opt]
312
+ if option.takes_value():
313
+ nargs = option.nargs
314
+ if nargs == '?':
315
+ if had_explicit_value:
316
+ value = rargs.pop(0)
317
+ else:
318
+ value = option.const
319
+ elif len(rargs) < nargs:
320
+ if nargs == 1:
321
+ self.error(_("%s option requires an argument") % opt)
322
+ else:
323
+ self.error(_("%s option requires %d arguments")
324
+ % (opt, nargs))
325
+ elif nargs == 1:
326
+ value = rargs.pop(0)
327
+ else:
328
+ value = tuple(rargs[0:nargs])
329
+ del rargs[0:nargs]
330
+
331
+ elif had_explicit_value:
332
+ self.error(_("%s option does not take a value") % opt)
333
+
334
+ else:
335
+ value = None
336
+
337
+ option.process(opt, value, values, self)
338
+
339
+ def add_local_option(self, *args, **kw):
340
+ """
341
+ Adds a local option to the parser.
342
+
343
+ This is initiated by a SetOption() call to add a user-defined
344
+ command-line option. We add the option to a separate option
345
+ group for the local options, creating the group if necessary.
346
+ """
347
+ try:
348
+ group = self.local_option_group
349
+ except AttributeError:
350
+ group = SConsOptionGroup(self, 'Local Options')
351
+ group = self.add_option_group(group)
352
+ self.local_option_group = group
353
+
354
+ result = group.add_option(*args, **kw)
355
+
356
+ if result:
357
+ # The option was added succesfully. We now have to add the
358
+ # default value to our object that holds the default values
359
+ # (so that an attempt to fetch the option's attribute will
360
+ # yield the default value when not overridden) and then
361
+ # we re-parse the leftover command-line options, so that
362
+ # any value overridden on the command line is immediately
363
+ # available if the user turns around and does a GetOption()
364
+ # right away.
365
+ setattr(self.values.__defaults__, result.dest, result.default)
366
+ self.parse_args(self.largs, self.values)
367
+
368
+ return result
369
+
370
+ class SConsIndentedHelpFormatter(optparse.IndentedHelpFormatter):
371
+ def format_usage(self, usage):
372
+ return "usage: %s\n" % usage
373
+
374
+ def format_heading(self, heading):
375
+ """
376
+ This translates any heading of "options" or "Options" into
377
+ "SCons Options." Unfortunately, we have to do this here,
378
+ because those titles are hard-coded in the optparse calls.
379
+ """
380
+ if heading == 'options':
381
+ # The versions of optparse.py shipped with Pythons 2.3 and
382
+ # 2.4 pass this in uncapitalized; override that so we get
383
+ # consistent output on all versions.
384
+ heading = "Options"
385
+ if heading == 'Options':
386
+ heading = "SCons Options"
387
+ return optparse.IndentedHelpFormatter.format_heading(self, heading)
388
+
389
+ def format_option(self, option):
390
+ """
391
+ A copy of the normal optparse.IndentedHelpFormatter.format_option()
392
+ method. This has been snarfed so we can modify text wrapping to
393
+ out liking:
394
+
395
+ -- add our own regular expression that doesn't break on hyphens
396
+ (so things like --no-print-directory don't get broken);
397
+
398
+ -- wrap the list of options themselves when it's too long
399
+ (the wrapper.fill(opts) call below);
400
+
401
+ -- set the subsequent_indent when wrapping the help_text.
402
+ """
403
+ # The help for each option consists of two parts:
404
+ # * the opt strings and metavars
405
+ # eg. ("-x", or "-fFILENAME, --file=FILENAME")
406
+ # * the user-supplied help string
407
+ # eg. ("turn on expert mode", "read data from FILENAME")
408
+ #
409
+ # If possible, we write both of these on the same line:
410
+ # -x turn on expert mode
411
+ #
412
+ # But if the opt string list is too long, we put the help
413
+ # string on a second line, indented to the same column it would
414
+ # start in if it fit on the first line.
415
+ # -fFILENAME, --file=FILENAME
416
+ # read data from FILENAME
417
+ result = []
418
+
419
+ try:
420
+ opts = self.option_strings[option]
421
+ except AttributeError:
422
+ # The Python 2.3 version of optparse attaches this to
423
+ # to the option argument, not to this object.
424
+ opts = option.option_strings
425
+
426
+ opt_width = self.help_position - self.current_indent - 2
427
+ if len(opts) > opt_width:
428
+ wrapper = textwrap.TextWrapper(width=self.width,
429
+ initial_indent = ' ',
430
+ subsequent_indent = ' ')
431
+ wrapper.wordsep_re = no_hyphen_re
432
+ opts = wrapper.fill(opts) + '\n'
433
+ indent_first = self.help_position
434
+ else: # start help on same line as opts
435
+ opts = "%*s%-*s " % (self.current_indent, "", opt_width, opts)
436
+ indent_first = 0
437
+ result.append(opts)
438
+ if option.help:
439
+
440
+ try:
441
+ expand_default = self.expand_default
442
+ except AttributeError:
443
+ # The HelpFormatter base class in the Python 2.3 version
444
+ # of optparse has no expand_default() method.
445
+ help_text = option.help
446
+ else:
447
+ help_text = expand_default(option)
448
+
449
+ # SCons: indent every line of the help text but the first.
450
+ wrapper = textwrap.TextWrapper(width=self.help_width,
451
+ subsequent_indent = ' ')
452
+ wrapper.wordsep_re = no_hyphen_re
453
+ help_lines = wrapper.wrap(help_text)
454
+ result.append("%*s%s\n" % (indent_first, "", help_lines[0]))
455
+ for line in help_lines[1:]:
456
+ result.append("%*s%s\n" % (self.help_position, "", line))
457
+ elif opts[-1] != "\n":
458
+ result.append("\n")
459
+ return "".join(result)
460
+
461
+ # For consistent help output across Python versions, we provide a
462
+ # subclass copy of format_option_strings() and these two variables.
463
+ # This is necessary (?) for Python2.3, which otherwise concatenates
464
+ # a short option with its metavar.
465
+ _short_opt_fmt = "%s %s"
466
+ _long_opt_fmt = "%s=%s"
467
+
468
+ def format_option_strings(self, option):
469
+ """Return a comma-separated list of option strings & metavariables."""
470
+ if option.takes_value():
471
+ metavar = option.metavar or option.dest.upper()
472
+ short_opts = []
473
+ for sopt in option._short_opts:
474
+ short_opts.append(self._short_opt_fmt % (sopt, metavar))
475
+ long_opts = []
476
+ for lopt in option._long_opts:
477
+ long_opts.append(self._long_opt_fmt % (lopt, metavar))
478
+ else:
479
+ short_opts = option._short_opts
480
+ long_opts = option._long_opts
481
+
482
+ if self.short_first:
483
+ opts = short_opts + long_opts
484
+ else:
485
+ opts = long_opts + short_opts
486
+
487
+ return ", ".join(opts)
488
+
489
+ def Parser(version):
490
+ """
491
+ Returns an options parser object initialized with the standard
492
+ SCons options.
493
+ """
494
+
495
+ formatter = SConsIndentedHelpFormatter(max_help_position=30)
496
+
497
+ op = SConsOptionParser(option_class=SConsOption,
498
+ add_help_option=False,
499
+ formatter=formatter,
500
+ usage="usage: scons [OPTION] [TARGET] ...",)
501
+
502
+ op.preserve_unknown_options = True
503
+ op.version = version
504
+
505
+ # Add the options to the parser we just created.
506
+ #
507
+ # These are in the order we want them to show up in the -H help
508
+ # text, basically alphabetical. Each op.add_option() call below
509
+ # should have a consistent format:
510
+ #
511
+ # op.add_option("-L", "--long-option-name",
512
+ # nargs=1, type="string",
513
+ # dest="long_option_name", default='foo',
514
+ # action="callback", callback=opt_long_option,
515
+ # help="help text goes here",
516
+ # metavar="VAR")
517
+ #
518
+ # Even though the optparse module constructs reasonable default
519
+ # destination names from the long option names, we're going to be
520
+ # explicit about each one for easier readability and so this code
521
+ # will at least show up when grepping the source for option attribute
522
+ # names, or otherwise browsing the source code.
523
+
524
+ # options ignored for compatibility
525
+ def opt_ignore(option, opt, value, parser):
526
+ sys.stderr.write("Warning: ignoring %s option\n" % opt)
527
+ op.add_option("-b", "-d", "-e", "-m", "-S", "-t", "-w",
528
+ "--environment-overrides",
529
+ "--no-keep-going",
530
+ "--no-print-directory",
531
+ "--print-directory",
532
+ "--stop",
533
+ "--touch",
534
+ action="callback", callback=opt_ignore,
535
+ help="Ignored for compatibility.")
536
+
537
+ op.add_option('-c', '--clean', '--remove',
538
+ dest="clean", default=False,
539
+ action="store_true",
540
+ help="Remove specified targets and dependencies.")
541
+
542
+ op.add_option('-C', '--directory',
543
+ nargs=1, type="string",
544
+ dest="directory", default=[],
545
+ action="append",
546
+ help="Change to DIR before doing anything.",
547
+ metavar="DIR")
548
+
549
+ op.add_option('--cache-debug',
550
+ nargs=1,
551
+ dest="cache_debug", default=None,
552
+ action="store",
553
+ help="Print CacheDir debug info to FILE.",
554
+ metavar="FILE")
555
+
556
+ op.add_option('--cache-disable', '--no-cache',
557
+ dest='cache_disable', default=False,
558
+ action="store_true",
559
+ help="Do not retrieve built targets from CacheDir.")
560
+
561
+ op.add_option('--cache-force', '--cache-populate',
562
+ dest='cache_force', default=False,
563
+ action="store_true",
564
+ help="Copy already-built targets into the CacheDir.")
565
+
566
+ op.add_option('--cache-show',
567
+ dest='cache_show', default=False,
568
+ action="store_true",
569
+ help="Print build actions for files from CacheDir.")
570
+
571
+ config_options = ["auto", "force" ,"cache"]
572
+
573
+ def opt_config(option, opt, value, parser, c_options=config_options):
574
+ if not value in c_options:
575
+ raise OptionValueError("Warning: %s is not a valid config type" % value)
576
+ setattr(parser.values, option.dest, value)
577
+ opt_config_help = "Controls Configure subsystem: %s." \
578
+ % ", ".join(config_options)
579
+ op.add_option('--config',
580
+ nargs=1, type="string",
581
+ dest="config", default="auto",
582
+ action="callback", callback=opt_config,
583
+ help = opt_config_help,
584
+ metavar="MODE")
585
+
586
+ op.add_option('-D',
587
+ dest="climb_up", default=None,
588
+ action="store_const", const=2,
589
+ help="Search up directory tree for SConstruct, "
590
+ "build all Default() targets.")
591
+
592
+ deprecated_debug_options = {
593
+ "dtree" : '; please use --tree=derived instead',
594
+ "nomemoizer" : ' and has no effect',
595
+ "stree" : '; please use --tree=all,status instead',
596
+ "tree" : '; please use --tree=all instead',
597
+ }
598
+
599
+ debug_options = ["count", "explain", "findlibs",
600
+ "includes", "memoizer", "memory", "objects",
601
+ "pdb", "presub", "stacktrace",
602
+ "time"] + list(deprecated_debug_options.keys())
603
+
604
+ def opt_debug(option, opt, value, parser,
605
+ debug_options=debug_options,
606
+ deprecated_debug_options=deprecated_debug_options):
607
+ if value in debug_options:
608
+ parser.values.debug.append(value)
609
+ if value in deprecated_debug_options.keys():
610
+ try:
611
+ parser.values.delayed_warnings
612
+ except AttributeError:
613
+ parser.values.delayed_warnings = []
614
+ msg = deprecated_debug_options[value]
615
+ w = "The --debug=%s option is deprecated%s." % (value, msg)
616
+ t = (SCons.Warnings.DeprecatedDebugOptionsWarning, w)
617
+ parser.values.delayed_warnings.append(t)
618
+ else:
619
+ raise OptionValueError("Warning: %s is not a valid debug type" % value)
620
+ opt_debug_help = "Print various types of debugging information: %s." \
621
+ % ", ".join(debug_options)
622
+ op.add_option('--debug',
623
+ nargs=1, type="string",
624
+ dest="debug", default=[],
625
+ action="callback", callback=opt_debug,
626
+ help=opt_debug_help,
627
+ metavar="TYPE")
628
+
629
+ def opt_diskcheck(option, opt, value, parser):
630
+ try:
631
+ diskcheck_value = diskcheck_convert(value)
632
+ except ValueError, e:
633
+ raise OptionValueError("Warning: `%s' is not a valid diskcheck type" % e)
634
+ setattr(parser.values, option.dest, diskcheck_value)
635
+
636
+ op.add_option('--diskcheck',
637
+ nargs=1, type="string",
638
+ dest='diskcheck', default=None,
639
+ action="callback", callback=opt_diskcheck,
640
+ help="Enable specific on-disk checks.",
641
+ metavar="TYPE")
642
+
643
+ def opt_duplicate(option, opt, value, parser):
644
+ if not value in SCons.Node.FS.Valid_Duplicates:
645
+ raise OptionValueError("`%s' is not a valid duplication style." % value)
646
+ setattr(parser.values, option.dest, value)
647
+ # Set the duplicate style right away so it can affect linking
648
+ # of SConscript files.
649
+ SCons.Node.FS.set_duplicate(value)
650
+
651
+ opt_duplicate_help = "Set the preferred duplication methods. Must be one of " \
652
+ + ", ".join(SCons.Node.FS.Valid_Duplicates)
653
+
654
+ op.add_option('--duplicate',
655
+ nargs=1, type="string",
656
+ dest="duplicate", default='hard-soft-copy',
657
+ action="callback", callback=opt_duplicate,
658
+ help=opt_duplicate_help)
659
+
660
+ op.add_option('-f', '--file', '--makefile', '--sconstruct',
661
+ nargs=1, type="string",
662
+ dest="file", default=[],
663
+ action="append",
664
+ help="Read FILE as the top-level SConstruct file.")
665
+
666
+ op.add_option('-h', '--help',
667
+ dest="help", default=False,
668
+ action="store_true",
669
+ help="Print defined help message, or this one.")
670
+
671
+ op.add_option("-H", "--help-options",
672
+ action="help",
673
+ help="Print this message and exit.")
674
+
675
+ op.add_option('-i', '--ignore-errors',
676
+ dest='ignore_errors', default=False,
677
+ action="store_true",
678
+ help="Ignore errors from build actions.")
679
+
680
+ op.add_option('-I', '--include-dir',
681
+ nargs=1,
682
+ dest='include_dir', default=[],
683
+ action="append",
684
+ help="Search DIR for imported Python modules.",
685
+ metavar="DIR")
686
+
687
+ op.add_option('--implicit-cache',
688
+ dest='implicit_cache', default=False,
689
+ action="store_true",
690
+ help="Cache implicit dependencies")
691
+
692
+ def opt_implicit_deps(option, opt, value, parser):
693
+ setattr(parser.values, 'implicit_cache', True)
694
+ setattr(parser.values, option.dest, True)
695
+
696
+ op.add_option('--implicit-deps-changed',
697
+ dest="implicit_deps_changed", default=False,
698
+ action="callback", callback=opt_implicit_deps,
699
+ help="Ignore cached implicit dependencies.")
700
+
701
+ op.add_option('--implicit-deps-unchanged',
702
+ dest="implicit_deps_unchanged", default=False,
703
+ action="callback", callback=opt_implicit_deps,
704
+ help="Ignore changes in implicit dependencies.")
705
+
706
+ op.add_option('--interact', '--interactive',
707
+ dest='interactive', default=False,
708
+ action="store_true",
709
+ help="Run in interactive mode.")
710
+
711
+ op.add_option('-j', '--jobs',
712
+ nargs=1, type="int",
713
+ dest="num_jobs", default=1,
714
+ action="store",
715
+ help="Allow N jobs at once.",
716
+ metavar="N")
717
+
718
+ op.add_option('-k', '--keep-going',
719
+ dest='keep_going', default=False,
720
+ action="store_true",
721
+ help="Keep going when a target can't be made.")
722
+
723
+ op.add_option('--max-drift',
724
+ nargs=1, type="int",
725
+ dest='max_drift', default=SCons.Node.FS.default_max_drift,
726
+ action="store",
727
+ help="Set maximum system clock drift to N seconds.",
728
+ metavar="N")
729
+
730
+ op.add_option('--md5-chunksize',
731
+ nargs=1, type="int",
732
+ dest='md5_chunksize', default=SCons.Node.FS.File.md5_chunksize,
733
+ action="store",
734
+ help="Set chunk-size for MD5 signature computation to N kilobytes.",
735
+ metavar="N")
736
+
737
+ op.add_option('-n', '--no-exec', '--just-print', '--dry-run', '--recon',
738
+ dest='no_exec', default=False,
739
+ action="store_true",
740
+ help="Don't build; just print commands.")
741
+
742
+ op.add_option('--no-site-dir',
743
+ dest='no_site_dir', default=False,
744
+ action="store_true",
745
+ help="Don't search or use the usual site_scons dir.")
746
+
747
+ op.add_option('--profile',
748
+ nargs=1,
749
+ dest="profile_file", default=None,
750
+ action="store",
751
+ help="Profile SCons and put results in FILE.",
752
+ metavar="FILE")
753
+
754
+ op.add_option('-q', '--question',
755
+ dest="question", default=False,
756
+ action="store_true",
757
+ help="Don't build; exit status says if up to date.")
758
+
759
+ op.add_option('-Q',
760
+ dest='no_progress', default=False,
761
+ action="store_true",
762
+ help="Suppress \"Reading/Building\" progress messages.")
763
+
764
+ op.add_option('--random',
765
+ dest="random", default=False,
766
+ action="store_true",
767
+ help="Build dependencies in random order.")
768
+
769
+ op.add_option('-s', '--silent', '--quiet',
770
+ dest="silent", default=False,
771
+ action="store_true",
772
+ help="Don't print commands.")
773
+
774
+ op.add_option('--site-dir',
775
+ nargs=1,
776
+ dest='site_dir', default=None,
777
+ action="store",
778
+ help="Use DIR instead of the usual site_scons dir.",
779
+ metavar="DIR")
780
+
781
+ op.add_option('--stack-size',
782
+ nargs=1, type="int",
783
+ dest='stack_size',
784
+ action="store",
785
+ help="Set the stack size of the threads used to run jobs to N kilobytes.",
786
+ metavar="N")
787
+
788
+ op.add_option('--taskmastertrace',
789
+ nargs=1,
790
+ dest="taskmastertrace_file", default=None,
791
+ action="store",
792
+ help="Trace Node evaluation to FILE.",
793
+ metavar="FILE")
794
+
795
+ tree_options = ["all", "derived", "prune", "status"]
796
+
797
+ def opt_tree(option, opt, value, parser, tree_options=tree_options):
798
+ import Main
799
+ tp = Main.TreePrinter()
800
+ for o in value.split(','):
801
+ if o == 'all':
802
+ tp.derived = False
803
+ elif o == 'derived':
804
+ tp.derived = True
805
+ elif o == 'prune':
806
+ tp.prune = True
807
+ elif o == 'status':
808
+ tp.status = True
809
+ else:
810
+ raise OptionValueError("Warning: %s is not a valid --tree option" % o)
811
+ parser.values.tree_printers.append(tp)
812
+
813
+ opt_tree_help = "Print a dependency tree in various formats: %s." \
814
+ % ", ".join(tree_options)
815
+
816
+ op.add_option('--tree',
817
+ nargs=1, type="string",
818
+ dest="tree_printers", default=[],
819
+ action="callback", callback=opt_tree,
820
+ help=opt_tree_help,
821
+ metavar="OPTIONS")
822
+
823
+ op.add_option('-u', '--up', '--search-up',
824
+ dest="climb_up", default=0,
825
+ action="store_const", const=1,
826
+ help="Search up directory tree for SConstruct, "
827
+ "build targets at or below current directory.")
828
+
829
+ op.add_option('-U',
830
+ dest="climb_up", default=0,
831
+ action="store_const", const=3,
832
+ help="Search up directory tree for SConstruct, "
833
+ "build Default() targets from local SConscript.")
834
+
835
+ def opt_version(option, opt, value, parser):
836
+ sys.stdout.write(parser.version + '\n')
837
+ sys.exit(0)
838
+ op.add_option("-v", "--version",
839
+ action="callback", callback=opt_version,
840
+ help="Print the SCons version number and exit.")
841
+
842
+ def opt_warn(option, opt, value, parser, tree_options=tree_options):
843
+ if SCons.Util.is_String(value):
844
+ value = value.split(',')
845
+ parser.values.warn.extend(value)
846
+
847
+ op.add_option('--warn', '--warning',
848
+ nargs=1, type="string",
849
+ dest="warn", default=[],
850
+ action="callback", callback=opt_warn,
851
+ help="Enable or disable warnings.",
852
+ metavar="WARNING-SPEC")
853
+
854
+ op.add_option('-Y', '--repository', '--srcdir',
855
+ nargs=1,
856
+ dest="repository", default=[],
857
+ action="append",
858
+ help="Search REPOSITORY for source and target files.")
859
+
860
+ # Options from Make and Cons classic that we do not yet support,
861
+ # but which we may support someday and whose (potential) meanings
862
+ # we don't want to change. These all get a "the -X option is not
863
+ # yet implemented" message and don't show up in the help output.
864
+
865
+ def opt_not_yet(option, opt, value, parser):
866
+ msg = "Warning: the %s option is not yet implemented\n" % opt
867
+ sys.stderr.write(msg)
868
+
869
+ op.add_option('-l', '--load-average', '--max-load',
870
+ nargs=1, type="int",
871
+ dest="load_average", default=0,
872
+ action="callback", callback=opt_not_yet,
873
+ # action="store",
874
+ # help="Don't start multiple jobs unless load is below "
875
+ # "LOAD-AVERAGE."
876
+ help=SUPPRESS_HELP)
877
+ op.add_option('--list-actions',
878
+ dest="list_actions",
879
+ action="callback", callback=opt_not_yet,
880
+ # help="Don't build; list files and build actions."
881
+ help=SUPPRESS_HELP)
882
+ op.add_option('--list-derived',
883
+ dest="list_derived",
884
+ action="callback", callback=opt_not_yet,
885
+ # help="Don't build; list files that would be built."
886
+ help=SUPPRESS_HELP)
887
+ op.add_option('--list-where',
888
+ dest="list_where",
889
+ action="callback", callback=opt_not_yet,
890
+ # help="Don't build; list files and where defined."
891
+ help=SUPPRESS_HELP)
892
+ op.add_option('-o', '--old-file', '--assume-old',
893
+ nargs=1, type="string",
894
+ dest="old_file", default=[],
895
+ action="callback", callback=opt_not_yet,
896
+ # action="append",
897
+ # help = "Consider FILE to be old; don't rebuild it."
898
+ help=SUPPRESS_HELP)
899
+ op.add_option('--override',
900
+ nargs=1, type="string",
901
+ action="callback", callback=opt_not_yet,
902
+ dest="override",
903
+ # help="Override variables as specified in FILE."
904
+ help=SUPPRESS_HELP)
905
+ op.add_option('-p',
906
+ action="callback", callback=opt_not_yet,
907
+ dest="p",
908
+ # help="Print internal environments/objects."
909
+ help=SUPPRESS_HELP)
910
+ op.add_option('-r', '-R', '--no-builtin-rules', '--no-builtin-variables',
911
+ action="callback", callback=opt_not_yet,
912
+ dest="no_builtin_rules",
913
+ # help="Clear default environments and variables."
914
+ help=SUPPRESS_HELP)
915
+ op.add_option('--write-filenames',
916
+ nargs=1, type="string",
917
+ dest="write_filenames",
918
+ action="callback", callback=opt_not_yet,
919
+ # help="Write all filenames examined into FILE."
920
+ help=SUPPRESS_HELP)
921
+ op.add_option('-W', '--new-file', '--assume-new', '--what-if',
922
+ nargs=1, type="string",
923
+ dest="new_file",
924
+ action="callback", callback=opt_not_yet,
925
+ # help="Consider FILE to be changed."
926
+ help=SUPPRESS_HELP)
927
+ op.add_option('--warn-undefined-variables',
928
+ dest="warn_undefined_variables",
929
+ action="callback", callback=opt_not_yet,
930
+ # help="Warn when an undefined variable is referenced."
931
+ help=SUPPRESS_HELP)
932
+
933
+ return op
934
+
935
+ # Local Variables:
936
+ # tab-width:4
937
+ # indent-tabs-mode:nil
938
+ # End:
939
+ # vim: set expandtab tabstop=4 shiftwidth=4: