embeditor-rails 2.0.0.beta → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1024) hide show
  1. checksums.yaml +7 -0
  2. data/lib/embeditor-rails/version.rb +1 -1
  3. metadata +51 -1056
  4. data/lib/node_modules/npm/AUTHORS +0 -158
  5. data/lib/node_modules/npm/CONTRIBUTING.md +0 -9
  6. data/lib/node_modules/npm/LICENSE +0 -235
  7. data/lib/node_modules/npm/Makefile +0 -216
  8. data/lib/node_modules/npm/README.md +0 -241
  9. data/lib/node_modules/npm/bin/node-gyp-bin/node-gyp +0 -2
  10. data/lib/node_modules/npm/bin/node-gyp-bin/node-gyp.cmd +0 -1
  11. data/lib/node_modules/npm/bin/npm +0 -13
  12. data/lib/node_modules/npm/bin/npm-cli.js +0 -87
  13. data/lib/node_modules/npm/bin/npm.cmd +0 -6
  14. data/lib/node_modules/npm/bin/read-package-json.js +0 -22
  15. data/lib/node_modules/npm/cli.js +0 -2
  16. data/lib/node_modules/npm/configure +0 -33
  17. data/lib/node_modules/npm/doc/api/npm-bin.md +0 -13
  18. data/lib/node_modules/npm/doc/api/npm-bugs.md +0 -19
  19. data/lib/node_modules/npm/doc/api/npm-commands.md +0 -22
  20. data/lib/node_modules/npm/doc/api/npm-config.md +0 -45
  21. data/lib/node_modules/npm/doc/api/npm-deprecate.md +0 -34
  22. data/lib/node_modules/npm/doc/api/npm-docs.md +0 -19
  23. data/lib/node_modules/npm/doc/api/npm-edit.md +0 -24
  24. data/lib/node_modules/npm/doc/api/npm-explore.md +0 -18
  25. data/lib/node_modules/npm/doc/api/npm-help-search.md +0 -30
  26. data/lib/node_modules/npm/doc/api/npm-init.md +0 -29
  27. data/lib/node_modules/npm/doc/api/npm-install.md +0 -19
  28. data/lib/node_modules/npm/doc/api/npm-link.md +0 -33
  29. data/lib/node_modules/npm/doc/api/npm-load.md +0 -26
  30. data/lib/node_modules/npm/doc/api/npm-ls.md +0 -56
  31. data/lib/node_modules/npm/doc/api/npm-outdated.md +0 -13
  32. data/lib/node_modules/npm/doc/api/npm-owner.md +0 -31
  33. data/lib/node_modules/npm/doc/api/npm-pack.md +0 -19
  34. data/lib/node_modules/npm/doc/api/npm-prefix.md +0 -15
  35. data/lib/node_modules/npm/doc/api/npm-prune.md +0 -17
  36. data/lib/node_modules/npm/doc/api/npm-publish.md +0 -30
  37. data/lib/node_modules/npm/doc/api/npm-rebuild.md +0 -16
  38. data/lib/node_modules/npm/doc/api/npm-repo.md +0 -19
  39. data/lib/node_modules/npm/doc/api/npm-restart.md +0 -22
  40. data/lib/node_modules/npm/doc/api/npm-root.md +0 -15
  41. data/lib/node_modules/npm/doc/api/npm-run-script.md +0 -27
  42. data/lib/node_modules/npm/doc/api/npm-search.md +0 -35
  43. data/lib/node_modules/npm/doc/api/npm-shrinkwrap.md +0 -20
  44. data/lib/node_modules/npm/doc/api/npm-start.md +0 -13
  45. data/lib/node_modules/npm/doc/api/npm-stop.md +0 -13
  46. data/lib/node_modules/npm/doc/api/npm-submodule.md +0 -28
  47. data/lib/node_modules/npm/doc/api/npm-tag.md +0 -23
  48. data/lib/node_modules/npm/doc/api/npm-test.md +0 -16
  49. data/lib/node_modules/npm/doc/api/npm-uninstall.md +0 -16
  50. data/lib/node_modules/npm/doc/api/npm-unpublish.md +0 -20
  51. data/lib/node_modules/npm/doc/api/npm-update.md +0 -11
  52. data/lib/node_modules/npm/doc/api/npm-version.md +0 -18
  53. data/lib/node_modules/npm/doc/api/npm-view.md +0 -93
  54. data/lib/node_modules/npm/doc/api/npm-whoami.md +0 -15
  55. data/lib/node_modules/npm/doc/api/npm.md +0 -116
  56. data/lib/node_modules/npm/doc/cli/npm-adduser.md +0 -38
  57. data/lib/node_modules/npm/doc/cli/npm-bin.md +0 -19
  58. data/lib/node_modules/npm/doc/cli/npm-bugs.md +0 -42
  59. data/lib/node_modules/npm/doc/cli/npm-build.md +0 -22
  60. data/lib/node_modules/npm/doc/cli/npm-bundle.md +0 -14
  61. data/lib/node_modules/npm/doc/cli/npm-cache.md +0 -72
  62. data/lib/node_modules/npm/doc/cli/npm-completion.md +0 -29
  63. data/lib/node_modules/npm/doc/cli/npm-config.md +0 -71
  64. data/lib/node_modules/npm/doc/cli/npm-dedupe.md +0 -58
  65. data/lib/node_modules/npm/doc/cli/npm-deprecate.md +0 -26
  66. data/lib/node_modules/npm/doc/cli/npm-docs.md +0 -44
  67. data/lib/node_modules/npm/doc/cli/npm-edit.md +0 -37
  68. data/lib/node_modules/npm/doc/cli/npm-explore.md +0 -40
  69. data/lib/node_modules/npm/doc/cli/npm-help-search.md +0 -35
  70. data/lib/node_modules/npm/doc/cli/npm-help.md +0 -40
  71. data/lib/node_modules/npm/doc/cli/npm-init.md +0 -25
  72. data/lib/node_modules/npm/doc/cli/npm-install.md +0 -252
  73. data/lib/node_modules/npm/doc/cli/npm-link.md +0 -63
  74. data/lib/node_modules/npm/doc/cli/npm-ls.md +0 -80
  75. data/lib/node_modules/npm/doc/cli/npm-outdated.md +0 -58
  76. data/lib/node_modules/npm/doc/cli/npm-owner.md +0 -33
  77. data/lib/node_modules/npm/doc/cli/npm-pack.md +0 -27
  78. data/lib/node_modules/npm/doc/cli/npm-prefix.md +0 -19
  79. data/lib/node_modules/npm/doc/cli/npm-prune.md +0 -25
  80. data/lib/node_modules/npm/doc/cli/npm-publish.md +0 -30
  81. data/lib/node_modules/npm/doc/cli/npm-rebuild.md +0 -21
  82. data/lib/node_modules/npm/doc/cli/npm-repo.md +0 -28
  83. data/lib/node_modules/npm/doc/cli/npm-restart.md +0 -22
  84. data/lib/node_modules/npm/doc/cli/npm-rm.md +0 -23
  85. data/lib/node_modules/npm/doc/cli/npm-root.md +0 -19
  86. data/lib/node_modules/npm/doc/cli/npm-run-script.md +0 -21
  87. data/lib/node_modules/npm/doc/cli/npm-search.md +0 -36
  88. data/lib/node_modules/npm/doc/cli/npm-shrinkwrap.md +0 -185
  89. data/lib/node_modules/npm/doc/cli/npm-star.md +0 -22
  90. data/lib/node_modules/npm/doc/cli/npm-stars.md +0 -22
  91. data/lib/node_modules/npm/doc/cli/npm-start.md +0 -18
  92. data/lib/node_modules/npm/doc/cli/npm-stop.md +0 -18
  93. data/lib/node_modules/npm/doc/cli/npm-submodule.md +0 -28
  94. data/lib/node_modules/npm/doc/cli/npm-tag.md +0 -34
  95. data/lib/node_modules/npm/doc/cli/npm-test.md +0 -22
  96. data/lib/node_modules/npm/doc/cli/npm-uninstall.md +0 -21
  97. data/lib/node_modules/npm/doc/cli/npm-unpublish.md +0 -32
  98. data/lib/node_modules/npm/doc/cli/npm-update.md +0 -24
  99. data/lib/node_modules/npm/doc/cli/npm-version.md +0 -45
  100. data/lib/node_modules/npm/doc/cli/npm-view.md +0 -90
  101. data/lib/node_modules/npm/doc/cli/npm-whoami.md +0 -17
  102. data/lib/node_modules/npm/doc/cli/npm.md +0 -153
  103. data/lib/node_modules/npm/doc/files/npm-folders.md +0 -211
  104. data/lib/node_modules/npm/doc/files/npmrc.md +0 -59
  105. data/lib/node_modules/npm/doc/files/package.json.md +0 -576
  106. data/lib/node_modules/npm/doc/misc/npm-coding-style.md +0 -181
  107. data/lib/node_modules/npm/doc/misc/npm-config.md +0 -820
  108. data/lib/node_modules/npm/doc/misc/npm-developers.md +0 -207
  109. data/lib/node_modules/npm/doc/misc/npm-disputes.md +0 -99
  110. data/lib/node_modules/npm/doc/misc/npm-faq.md +0 -364
  111. data/lib/node_modules/npm/doc/misc/npm-index.md +0 -411
  112. data/lib/node_modules/npm/doc/misc/npm-registry.md +0 -69
  113. data/lib/node_modules/npm/doc/misc/npm-scripts.md +0 -245
  114. data/lib/node_modules/npm/doc/misc/removing-npm.md +0 -54
  115. data/lib/node_modules/npm/doc/misc/semver.md +0 -111
  116. data/lib/node_modules/npm/html/doc/README.html +0 -276
  117. data/lib/node_modules/npm/html/doc/api/npm-bin.html +0 -53
  118. data/lib/node_modules/npm/html/doc/api/npm-bugs.html +0 -59
  119. data/lib/node_modules/npm/html/doc/api/npm-commands.html +0 -62
  120. data/lib/node_modules/npm/html/doc/api/npm-config.html +0 -67
  121. data/lib/node_modules/npm/html/doc/api/npm-deprecate.html +0 -66
  122. data/lib/node_modules/npm/html/doc/api/npm-docs.html +0 -59
  123. data/lib/node_modules/npm/html/doc/api/npm-edit.html +0 -64
  124. data/lib/node_modules/npm/html/doc/api/npm-explore.html +0 -58
  125. data/lib/node_modules/npm/html/doc/api/npm-help-search.html +0 -66
  126. data/lib/node_modules/npm/html/doc/api/npm-init.html +0 -69
  127. data/lib/node_modules/npm/html/doc/api/npm-install.html +0 -59
  128. data/lib/node_modules/npm/html/doc/api/npm-link.html +0 -73
  129. data/lib/node_modules/npm/html/doc/api/npm-load.html +0 -66
  130. data/lib/node_modules/npm/html/doc/api/npm-ls.html +0 -93
  131. data/lib/node_modules/npm/html/doc/api/npm-outdated.html +0 -53
  132. data/lib/node_modules/npm/html/doc/api/npm-owner.html +0 -68
  133. data/lib/node_modules/npm/html/doc/api/npm-pack.html +0 -59
  134. data/lib/node_modules/npm/html/doc/api/npm-prefix.html +0 -55
  135. data/lib/node_modules/npm/html/doc/api/npm-prune.html +0 -57
  136. data/lib/node_modules/npm/html/doc/api/npm-publish.html +0 -66
  137. data/lib/node_modules/npm/html/doc/api/npm-rebuild.html +0 -56
  138. data/lib/node_modules/npm/html/doc/api/npm-repo.html +0 -59
  139. data/lib/node_modules/npm/html/doc/api/npm-restart.html +0 -61
  140. data/lib/node_modules/npm/html/doc/api/npm-root.html +0 -55
  141. data/lib/node_modules/npm/html/doc/api/npm-run-script.html +0 -63
  142. data/lib/node_modules/npm/html/doc/api/npm-search.html +0 -66
  143. data/lib/node_modules/npm/html/doc/api/npm-shrinkwrap.html +0 -60
  144. data/lib/node_modules/npm/html/doc/api/npm-start.html +0 -53
  145. data/lib/node_modules/npm/html/doc/api/npm-stop.html +0 -53
  146. data/lib/node_modules/npm/html/doc/api/npm-submodule.html +0 -67
  147. data/lib/node_modules/npm/html/doc/api/npm-tag.html +0 -63
  148. data/lib/node_modules/npm/html/doc/api/npm-test.html +0 -56
  149. data/lib/node_modules/npm/html/doc/api/npm-uninstall.html +0 -56
  150. data/lib/node_modules/npm/html/doc/api/npm-unpublish.html +0 -60
  151. data/lib/node_modules/npm/html/doc/api/npm-update.html +0 -52
  152. data/lib/node_modules/npm/html/doc/api/npm-version.html +0 -58
  153. data/lib/node_modules/npm/html/doc/api/npm-view.html +0 -133
  154. data/lib/node_modules/npm/html/doc/api/npm-whoami.html +0 -55
  155. data/lib/node_modules/npm/html/doc/api/npm.html +0 -126
  156. data/lib/node_modules/npm/html/doc/cli/npm-adduser.html +0 -73
  157. data/lib/node_modules/npm/html/doc/cli/npm-bin.html +0 -54
  158. data/lib/node_modules/npm/html/doc/cli/npm-bugs.html +0 -72
  159. data/lib/node_modules/npm/html/doc/cli/npm-build.html +0 -59
  160. data/lib/node_modules/npm/html/doc/cli/npm-bundle.html +0 -54
  161. data/lib/node_modules/npm/html/doc/cli/npm-cache.html +0 -100
  162. data/lib/node_modules/npm/html/doc/cli/npm-completion.html +0 -67
  163. data/lib/node_modules/npm/html/doc/cli/npm-config.html +0 -107
  164. data/lib/node_modules/npm/html/doc/cli/npm-dedupe.html +0 -96
  165. data/lib/node_modules/npm/html/doc/cli/npm-deprecate.html +0 -65
  166. data/lib/node_modules/npm/html/doc/cli/npm-docs.html +0 -75
  167. data/lib/node_modules/npm/html/doc/cli/npm-edit.html +0 -71
  168. data/lib/node_modules/npm/html/doc/cli/npm-explore.html +0 -74
  169. data/lib/node_modules/npm/html/doc/cli/npm-help-search.html +0 -72
  170. data/lib/node_modules/npm/html/doc/cli/npm-help.html +0 -70
  171. data/lib/node_modules/npm/html/doc/cli/npm-init.html +0 -63
  172. data/lib/node_modules/npm/html/doc/cli/npm-install.html +0 -183
  173. data/lib/node_modules/npm/html/doc/cli/npm-link.html +0 -96
  174. data/lib/node_modules/npm/html/doc/cli/npm-ls.html +0 -108
  175. data/lib/node_modules/npm/html/doc/cli/npm-outdated.html +0 -92
  176. data/lib/node_modules/npm/html/doc/cli/npm-owner.html +0 -68
  177. data/lib/node_modules/npm/html/doc/cli/npm-pack.html +0 -63
  178. data/lib/node_modules/npm/html/doc/cli/npm-prefix.html +0 -54
  179. data/lib/node_modules/npm/html/doc/cli/npm-prune.html +0 -63
  180. data/lib/node_modules/npm/html/doc/cli/npm-publish.html +0 -63
  181. data/lib/node_modules/npm/html/doc/cli/npm-rebuild.html +0 -60
  182. data/lib/node_modules/npm/html/doc/cli/npm-repo.html +0 -66
  183. data/lib/node_modules/npm/html/doc/cli/npm-restart.html +0 -58
  184. data/lib/node_modules/npm/html/doc/cli/npm-rm.html +0 -58
  185. data/lib/node_modules/npm/html/doc/cli/npm-root.html +0 -54
  186. data/lib/node_modules/npm/html/doc/cli/npm-run-script.html +0 -57
  187. data/lib/node_modules/npm/html/doc/cli/npm-search.html +0 -71
  188. data/lib/node_modules/npm/html/doc/cli/npm-shrinkwrap.html +0 -217
  189. data/lib/node_modules/npm/html/doc/cli/npm-star.html +0 -60
  190. data/lib/node_modules/npm/html/doc/cli/npm-stars.html +0 -59
  191. data/lib/node_modules/npm/html/doc/cli/npm-start.html +0 -54
  192. data/lib/node_modules/npm/html/doc/cli/npm-stop.html +0 -54
  193. data/lib/node_modules/npm/html/doc/cli/npm-submodule.html +0 -67
  194. data/lib/node_modules/npm/html/doc/cli/npm-tag.html +0 -68
  195. data/lib/node_modules/npm/html/doc/cli/npm-test.html +0 -58
  196. data/lib/node_modules/npm/html/doc/cli/npm-uninstall.html +0 -56
  197. data/lib/node_modules/npm/html/doc/cli/npm-unpublish.html +0 -68
  198. data/lib/node_modules/npm/html/doc/cli/npm-update.html +0 -60
  199. data/lib/node_modules/npm/html/doc/cli/npm-version.html +0 -83
  200. data/lib/node_modules/npm/html/doc/cli/npm-view.html +0 -125
  201. data/lib/node_modules/npm/html/doc/cli/npm-whoami.html +0 -54
  202. data/lib/node_modules/npm/html/doc/cli/npm.html +0 -165
  203. data/lib/node_modules/npm/html/doc/files/npm-folders.html +0 -239
  204. data/lib/node_modules/npm/html/doc/files/npm-global.html +0 -239
  205. data/lib/node_modules/npm/html/doc/files/npm-json.html +0 -580
  206. data/lib/node_modules/npm/html/doc/files/npmrc.html +0 -93
  207. data/lib/node_modules/npm/html/doc/files/package.json.html +0 -580
  208. data/lib/node_modules/npm/html/doc/index.html +0 -450
  209. data/lib/node_modules/npm/html/doc/misc/npm-coding-style.html +0 -216
  210. data/lib/node_modules/npm/html/doc/misc/npm-config.html +0 -744
  211. data/lib/node_modules/npm/html/doc/misc/npm-developers.html +0 -208
  212. data/lib/node_modules/npm/html/doc/misc/npm-disputes.html +0 -126
  213. data/lib/node_modules/npm/html/doc/misc/npm-faq.html +0 -382
  214. data/lib/node_modules/npm/html/doc/misc/npm-index.html +0 -450
  215. data/lib/node_modules/npm/html/doc/misc/npm-registry.html +0 -105
  216. data/lib/node_modules/npm/html/doc/misc/npm-scripts.html +0 -257
  217. data/lib/node_modules/npm/html/doc/misc/removing-npm.html +0 -92
  218. data/lib/node_modules/npm/html/doc/misc/semver.html +0 -128
  219. data/lib/node_modules/npm/html/docfoot-script.html +0 -31
  220. data/lib/node_modules/npm/html/docfoot.html +0 -2
  221. data/lib/node_modules/npm/html/dochead.html +0 -8
  222. data/lib/node_modules/npm/html/favicon.ico +0 -0
  223. data/lib/node_modules/npm/html/index.html +0 -95
  224. data/lib/node_modules/npm/html/static/style.css +0 -329
  225. data/lib/node_modules/npm/lib/adduser.js +0 -138
  226. data/lib/node_modules/npm/lib/bin.js +0 -18
  227. data/lib/node_modules/npm/lib/bugs.js +0 -61
  228. data/lib/node_modules/npm/lib/build.js +0 -228
  229. data/lib/node_modules/npm/lib/cache.js +0 -1318
  230. data/lib/node_modules/npm/lib/completion.js +0 -253
  231. data/lib/node_modules/npm/lib/config.js +0 -285
  232. data/lib/node_modules/npm/lib/dedupe.js +0 -357
  233. data/lib/node_modules/npm/lib/deprecate.js +0 -47
  234. data/lib/node_modules/npm/lib/docs.js +0 -62
  235. data/lib/node_modules/npm/lib/edit.js +0 -32
  236. data/lib/node_modules/npm/lib/explore.js +0 -36
  237. data/lib/node_modules/npm/lib/faq.js +0 -8
  238. data/lib/node_modules/npm/lib/get.js +0 -12
  239. data/lib/node_modules/npm/lib/help-search.js +0 -218
  240. data/lib/node_modules/npm/lib/help.js +0 -231
  241. data/lib/node_modules/npm/lib/init.js +0 -36
  242. data/lib/node_modules/npm/lib/install.js +0 -979
  243. data/lib/node_modules/npm/lib/link.js +0 -173
  244. data/lib/node_modules/npm/lib/ls.js +0 -357
  245. data/lib/node_modules/npm/lib/npm.js +0 -528
  246. data/lib/node_modules/npm/lib/outdated.js +0 -303
  247. data/lib/node_modules/npm/lib/owner.js +0 -205
  248. data/lib/node_modules/npm/lib/pack.js +0 -65
  249. data/lib/node_modules/npm/lib/prefix.js +0 -11
  250. data/lib/node_modules/npm/lib/prune.js +0 -53
  251. data/lib/node_modules/npm/lib/publish.js +0 -118
  252. data/lib/node_modules/npm/lib/rebuild.js +0 -75
  253. data/lib/node_modules/npm/lib/repo.js +0 -54
  254. data/lib/node_modules/npm/lib/restart.js +0 -1
  255. data/lib/node_modules/npm/lib/root.js +0 -11
  256. data/lib/node_modules/npm/lib/run-script.js +0 -102
  257. data/lib/node_modules/npm/lib/search.js +0 -265
  258. data/lib/node_modules/npm/lib/set.js +0 -13
  259. data/lib/node_modules/npm/lib/shrinkwrap.js +0 -86
  260. data/lib/node_modules/npm/lib/star.js +0 -33
  261. data/lib/node_modules/npm/lib/stars.js +0 -27
  262. data/lib/node_modules/npm/lib/start.js +0 -1
  263. data/lib/node_modules/npm/lib/stop.js +0 -1
  264. data/lib/node_modules/npm/lib/submodule.js +0 -119
  265. data/lib/node_modules/npm/lib/substack.js +0 -20
  266. data/lib/node_modules/npm/lib/tag.js +0 -18
  267. data/lib/node_modules/npm/lib/test.js +0 -14
  268. data/lib/node_modules/npm/lib/unbuild.js +0 -112
  269. data/lib/node_modules/npm/lib/uninstall.js +0 -127
  270. data/lib/node_modules/npm/lib/unpublish.js +0 -83
  271. data/lib/node_modules/npm/lib/update.js +0 -43
  272. data/lib/node_modules/npm/lib/utils/completion.sh +0 -54
  273. data/lib/node_modules/npm/lib/utils/completion/file-completion.js +0 -26
  274. data/lib/node_modules/npm/lib/utils/completion/installed-deep.js +0 -50
  275. data/lib/node_modules/npm/lib/utils/completion/installed-shallow.js +0 -79
  276. data/lib/node_modules/npm/lib/utils/error-handler.js +0 -343
  277. data/lib/node_modules/npm/lib/utils/fetch.js +0 -93
  278. data/lib/node_modules/npm/lib/utils/find-prefix.js +0 -57
  279. data/lib/node_modules/npm/lib/utils/gently-rm.js +0 -61
  280. data/lib/node_modules/npm/lib/utils/is-git-url.js +0 -13
  281. data/lib/node_modules/npm/lib/utils/lifecycle.js +0 -360
  282. data/lib/node_modules/npm/lib/utils/link.js +0 -39
  283. data/lib/node_modules/npm/lib/utils/tar.js +0 -323
  284. data/lib/node_modules/npm/lib/version.js +0 -120
  285. data/lib/node_modules/npm/lib/view.js +0 -246
  286. data/lib/node_modules/npm/lib/visnup.js +0 -42
  287. data/lib/node_modules/npm/lib/whoami.js +0 -13
  288. data/lib/node_modules/npm/lib/xmas.js +0 -56
  289. data/lib/node_modules/npm/make.bat +0 -3
  290. data/lib/node_modules/npm/man/man1/npm-README.1 +0 -328
  291. data/lib/node_modules/npm/man/man1/npm-adduser.1 +0 -63
  292. data/lib/node_modules/npm/man/man1/npm-bin.1 +0 -40
  293. data/lib/node_modules/npm/man/man1/npm-bugs.1 +0 -78
  294. data/lib/node_modules/npm/man/man1/npm-build.1 +0 -43
  295. data/lib/node_modules/npm/man/man1/npm-bundle.1 +0 -23
  296. data/lib/node_modules/npm/man/man1/npm-cache.1 +0 -104
  297. data/lib/node_modules/npm/man/man1/npm-completion.1 +0 -47
  298. data/lib/node_modules/npm/man/man1/npm-config.1 +0 -113
  299. data/lib/node_modules/npm/man/man1/npm-dedupe.1 +0 -96
  300. data/lib/node_modules/npm/man/man1/npm-deprecate.1 +0 -48
  301. data/lib/node_modules/npm/man/man1/npm-docs.1 +0 -78
  302. data/lib/node_modules/npm/man/man1/npm-edit.1 +0 -66
  303. data/lib/node_modules/npm/man/man1/npm-explore.1 +0 -76
  304. data/lib/node_modules/npm/man/man1/npm-help-search.1 +0 -59
  305. data/lib/node_modules/npm/man/man1/npm-help.1 +0 -77
  306. data/lib/node_modules/npm/man/man1/npm-init.1 +0 -43
  307. data/lib/node_modules/npm/man/man1/npm-install.1 +0 -434
  308. data/lib/node_modules/npm/man/man1/npm-link.1 +0 -119
  309. data/lib/node_modules/npm/man/man1/npm-ls.1 +0 -146
  310. data/lib/node_modules/npm/man/man1/npm-outdated.1 +0 -102
  311. data/lib/node_modules/npm/man/man1/npm-owner.1 +0 -58
  312. data/lib/node_modules/npm/man/man1/npm-pack.1 +0 -48
  313. data/lib/node_modules/npm/man/man1/npm-prefix.1 +0 -40
  314. data/lib/node_modules/npm/man/man1/npm-prune.1 +0 -42
  315. data/lib/node_modules/npm/man/man1/npm-publish.1 +0 -53
  316. data/lib/node_modules/npm/man/man1/npm-rebuild.1 +0 -37
  317. data/lib/node_modules/npm/man/man1/npm-repo.1 +0 -47
  318. data/lib/node_modules/npm/man/man1/npm-restart.1 +0 -42
  319. data/lib/node_modules/npm/man/man1/npm-rm.1 +0 -44
  320. data/lib/node_modules/npm/man/man1/npm-root.1 +0 -40
  321. data/lib/node_modules/npm/man/man1/npm-run-script.1 +0 -41
  322. data/lib/node_modules/npm/man/man1/npm-search.1 +0 -62
  323. data/lib/node_modules/npm/man/man1/npm-shrinkwrap.1 +0 -275
  324. data/lib/node_modules/npm/man/man1/npm-star.1 +0 -39
  325. data/lib/node_modules/npm/man/man1/npm-stars.1 +0 -40
  326. data/lib/node_modules/npm/man/man1/npm-start.1 +0 -37
  327. data/lib/node_modules/npm/man/man1/npm-stop.1 +0 -37
  328. data/lib/node_modules/npm/man/man1/npm-submodule.1 +0 -42
  329. data/lib/node_modules/npm/man/man1/npm-tag.1 +0 -74
  330. data/lib/node_modules/npm/man/man1/npm-test.1 +0 -42
  331. data/lib/node_modules/npm/man/man1/npm-uninstall.1 +0 -42
  332. data/lib/node_modules/npm/man/man1/npm-unpublish.1 +0 -53
  333. data/lib/node_modules/npm/man/man1/npm-update.1 +0 -45
  334. data/lib/node_modules/npm/man/man1/npm-version.1 +0 -75
  335. data/lib/node_modules/npm/man/man1/npm-view.1 +0 -186
  336. data/lib/node_modules/npm/man/man1/npm-whoami.1 +0 -34
  337. data/lib/node_modules/npm/man/man1/npm.1 +0 -230
  338. data/lib/node_modules/npm/man/man3/npm-bin.3 +0 -21
  339. data/lib/node_modules/npm/man/man3/npm-bugs.3 +0 -28
  340. data/lib/node_modules/npm/man/man3/npm-commands.3 +0 -35
  341. data/lib/node_modules/npm/man/man3/npm-config.3 +0 -69
  342. data/lib/node_modules/npm/man/man3/npm-deprecate.3 +0 -57
  343. data/lib/node_modules/npm/man/man3/npm-docs.3 +0 -28
  344. data/lib/node_modules/npm/man/man3/npm-edit.3 +0 -35
  345. data/lib/node_modules/npm/man/man3/npm-explore.3 +0 -28
  346. data/lib/node_modules/npm/man/man3/npm-help-search.3 +0 -51
  347. data/lib/node_modules/npm/man/man3/npm-init.3 +0 -39
  348. data/lib/node_modules/npm/man/man3/npm-install.3 +0 -29
  349. data/lib/node_modules/npm/man/man3/npm-link.3 +0 -53
  350. data/lib/node_modules/npm/man/man3/npm-load.3 +0 -44
  351. data/lib/node_modules/npm/man/man3/npm-ls.3 +0 -86
  352. data/lib/node_modules/npm/man/man3/npm-outdated.3 +0 -21
  353. data/lib/node_modules/npm/man/man3/npm-owner.3 +0 -52
  354. data/lib/node_modules/npm/man/man3/npm-pack.3 +0 -28
  355. data/lib/node_modules/npm/man/man3/npm-prefix.3 +0 -24
  356. data/lib/node_modules/npm/man/man3/npm-prune.3 +0 -27
  357. data/lib/node_modules/npm/man/man3/npm-publish.3 +0 -51
  358. data/lib/node_modules/npm/man/man3/npm-rebuild.3 +0 -22
  359. data/lib/node_modules/npm/man/man3/npm-repo.3 +0 -28
  360. data/lib/node_modules/npm/man/man3/npm-restart.3 +0 -37
  361. data/lib/node_modules/npm/man/man3/npm-root.3 +0 -24
  362. data/lib/node_modules/npm/man/man3/npm-run-script.3 +0 -48
  363. data/lib/node_modules/npm/man/man3/npm-search.3 +0 -64
  364. data/lib/node_modules/npm/man/man3/npm-shrinkwrap.3 +0 -30
  365. data/lib/node_modules/npm/man/man3/npm-start.3 +0 -21
  366. data/lib/node_modules/npm/man/man3/npm-stop.3 +0 -21
  367. data/lib/node_modules/npm/man/man3/npm-submodule.3 +0 -42
  368. data/lib/node_modules/npm/man/man3/npm-tag.3 +0 -31
  369. data/lib/node_modules/npm/man/man3/npm-test.3 +0 -25
  370. data/lib/node_modules/npm/man/man3/npm-uninstall.3 +0 -25
  371. data/lib/node_modules/npm/man/man3/npm-unpublish.3 +0 -30
  372. data/lib/node_modules/npm/man/man3/npm-update.3 +0 -18
  373. data/lib/node_modules/npm/man/man3/npm-version.3 +0 -27
  374. data/lib/node_modules/npm/man/man3/npm-view.3 +0 -176
  375. data/lib/node_modules/npm/man/man3/npm-whoami.3 +0 -24
  376. data/lib/node_modules/npm/man/man3/npm.3 +0 -162
  377. data/lib/node_modules/npm/man/man5/npm-folders.5 +0 -264
  378. data/lib/node_modules/npm/man/man5/npm-global.5 +0 -264
  379. data/lib/node_modules/npm/man/man5/npm-json.5 +0 -807
  380. data/lib/node_modules/npm/man/man5/npmrc.5 +0 -89
  381. data/lib/node_modules/npm/man/man5/package.json.5 +0 -807
  382. data/lib/node_modules/npm/man/man7/npm-coding-style.7 +0 -254
  383. data/lib/node_modules/npm/man/man7/npm-config.7 +0 -1445
  384. data/lib/node_modules/npm/man/man7/npm-developers.7 +0 -335
  385. data/lib/node_modules/npm/man/man7/npm-disputes.7 +0 -146
  386. data/lib/node_modules/npm/man/man7/npm-faq.7 +0 -479
  387. data/lib/node_modules/npm/man/man7/npm-index.7 +0 -307
  388. data/lib/node_modules/npm/man/man7/npm-registry.7 +0 -82
  389. data/lib/node_modules/npm/man/man7/npm-scripts.7 +0 -354
  390. data/lib/node_modules/npm/man/man7/removing-npm.7 +0 -107
  391. data/lib/node_modules/npm/man/man7/semver.7 +0 -172
  392. data/lib/node_modules/npm/node_modules/abbrev/LICENSE +0 -23
  393. data/lib/node_modules/npm/node_modules/abbrev/README.md +0 -23
  394. data/lib/node_modules/npm/node_modules/abbrev/lib/abbrev.js +0 -111
  395. data/lib/node_modules/npm/node_modules/abbrev/package.json +0 -25
  396. data/lib/node_modules/npm/node_modules/ansi/README.md +0 -91
  397. data/lib/node_modules/npm/node_modules/ansi/color-spaces.pl +0 -67
  398. data/lib/node_modules/npm/node_modules/ansi/examples/beep/index.js +0 -16
  399. data/lib/node_modules/npm/node_modules/ansi/examples/clear/index.js +0 -15
  400. data/lib/node_modules/npm/node_modules/ansi/examples/cursorPosition.js +0 -32
  401. data/lib/node_modules/npm/node_modules/ansi/examples/progress/index.js +0 -87
  402. data/lib/node_modules/npm/node_modules/ansi/examples/starwars.js +0 -46
  403. data/lib/node_modules/npm/node_modules/ansi/lib/ansi.js +0 -405
  404. data/lib/node_modules/npm/node_modules/ansi/lib/newlines.js +0 -71
  405. data/lib/node_modules/npm/node_modules/ansi/package.json +0 -50
  406. data/lib/node_modules/npm/node_modules/ansicolors/LICENSE +0 -23
  407. data/lib/node_modules/npm/node_modules/ansicolors/README.md +0 -62
  408. data/lib/node_modules/npm/node_modules/ansicolors/ansicolors.js +0 -65
  409. data/lib/node_modules/npm/node_modules/ansicolors/package.json +0 -34
  410. data/lib/node_modules/npm/node_modules/ansistyles/LICENSE +0 -23
  411. data/lib/node_modules/npm/node_modules/ansistyles/README.md +0 -71
  412. data/lib/node_modules/npm/node_modules/ansistyles/ansistyles.js +0 -38
  413. data/lib/node_modules/npm/node_modules/ansistyles/package.json +0 -38
  414. data/lib/node_modules/npm/node_modules/archy/README.markdown +0 -92
  415. data/lib/node_modules/npm/node_modules/archy/index.js +0 -35
  416. data/lib/node_modules/npm/node_modules/archy/package.json +0 -52
  417. data/lib/node_modules/npm/node_modules/block-stream/LICENCE +0 -25
  418. data/lib/node_modules/npm/node_modules/block-stream/README.md +0 -14
  419. data/lib/node_modules/npm/node_modules/block-stream/bench/block-stream-pause.js +0 -70
  420. data/lib/node_modules/npm/node_modules/block-stream/bench/block-stream.js +0 -68
  421. data/lib/node_modules/npm/node_modules/block-stream/bench/dropper-pause.js +0 -70
  422. data/lib/node_modules/npm/node_modules/block-stream/bench/dropper.js +0 -68
  423. data/lib/node_modules/npm/node_modules/block-stream/block-stream.js +0 -209
  424. data/lib/node_modules/npm/node_modules/block-stream/package.json +0 -35
  425. data/lib/node_modules/npm/node_modules/child-process-close/README.md +0 -45
  426. data/lib/node_modules/npm/node_modules/child-process-close/index.js +0 -48
  427. data/lib/node_modules/npm/node_modules/child-process-close/package.json +0 -37
  428. data/lib/node_modules/npm/node_modules/chmodr/LICENSE +0 -27
  429. data/lib/node_modules/npm/node_modules/chmodr/README.md +0 -3
  430. data/lib/node_modules/npm/node_modules/chmodr/chmodr.js +0 -54
  431. data/lib/node_modules/npm/node_modules/chmodr/package.json +0 -28
  432. data/lib/node_modules/npm/node_modules/chownr/LICENCE +0 -25
  433. data/lib/node_modules/npm/node_modules/chownr/README.md +0 -3
  434. data/lib/node_modules/npm/node_modules/chownr/chownr.js +0 -41
  435. data/lib/node_modules/npm/node_modules/chownr/package.json +0 -42
  436. data/lib/node_modules/npm/node_modules/cmd-shim/LICENSE +0 -27
  437. data/lib/node_modules/npm/node_modules/cmd-shim/README.md +0 -42
  438. data/lib/node_modules/npm/node_modules/cmd-shim/index.js +0 -180
  439. data/lib/node_modules/npm/node_modules/cmd-shim/package.json +0 -35
  440. data/lib/node_modules/npm/node_modules/columnify/Readme.md +0 -189
  441. data/lib/node_modules/npm/node_modules/columnify/index.js +0 -210
  442. data/lib/node_modules/npm/node_modules/columnify/package.json +0 -42
  443. data/lib/node_modules/npm/node_modules/columnify/utils.js +0 -76
  444. data/lib/node_modules/npm/node_modules/editor/LICENSE +0 -18
  445. data/lib/node_modules/npm/node_modules/editor/README.markdown +0 -54
  446. data/lib/node_modules/npm/node_modules/editor/example/beep.json +0 -5
  447. data/lib/node_modules/npm/node_modules/editor/example/edit.js +0 -4
  448. data/lib/node_modules/npm/node_modules/editor/index.js +0 -26
  449. data/lib/node_modules/npm/node_modules/editor/package.json +0 -43
  450. data/lib/node_modules/npm/node_modules/fstream-npm/LICENCE +0 -25
  451. data/lib/node_modules/npm/node_modules/fstream-npm/README.md +0 -18
  452. data/lib/node_modules/npm/node_modules/fstream-npm/example/bundle.js +0 -13
  453. data/lib/node_modules/npm/node_modules/fstream-npm/example/dir-tar.js +0 -19
  454. data/lib/node_modules/npm/node_modules/fstream-npm/example/dir.js +0 -25
  455. data/lib/node_modules/npm/node_modules/fstream-npm/example/example.js +0 -12
  456. data/lib/node_modules/npm/node_modules/fstream-npm/example/ig-tar.js +0 -19
  457. data/lib/node_modules/npm/node_modules/fstream-npm/example/tar.js +0 -25
  458. data/lib/node_modules/npm/node_modules/fstream-npm/fstream-npm.js +0 -323
  459. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE +0 -27
  460. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md +0 -22
  461. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/example/basic.js +0 -13
  462. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js +0 -275
  463. data/lib/node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json +0 -40
  464. data/lib/node_modules/npm/node_modules/fstream-npm/package.json +0 -27
  465. data/lib/node_modules/npm/node_modules/fstream/LICENSE +0 -27
  466. data/lib/node_modules/npm/node_modules/fstream/README.md +0 -76
  467. data/lib/node_modules/npm/node_modules/fstream/examples/filter-pipe.js +0 -131
  468. data/lib/node_modules/npm/node_modules/fstream/examples/pipe.js +0 -115
  469. data/lib/node_modules/npm/node_modules/fstream/examples/reader.js +0 -54
  470. data/lib/node_modules/npm/node_modules/fstream/examples/symlink-write.js +0 -24
  471. data/lib/node_modules/npm/node_modules/fstream/fstream.js +0 -31
  472. data/lib/node_modules/npm/node_modules/fstream/lib/abstract.js +0 -85
  473. data/lib/node_modules/npm/node_modules/fstream/lib/collect.js +0 -67
  474. data/lib/node_modules/npm/node_modules/fstream/lib/dir-reader.js +0 -251
  475. data/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js +0 -171
  476. data/lib/node_modules/npm/node_modules/fstream/lib/file-reader.js +0 -147
  477. data/lib/node_modules/npm/node_modules/fstream/lib/file-writer.js +0 -100
  478. data/lib/node_modules/npm/node_modules/fstream/lib/get-type.js +0 -32
  479. data/lib/node_modules/npm/node_modules/fstream/lib/link-reader.js +0 -54
  480. data/lib/node_modules/npm/node_modules/fstream/lib/link-writer.js +0 -95
  481. data/lib/node_modules/npm/node_modules/fstream/lib/proxy-reader.js +0 -93
  482. data/lib/node_modules/npm/node_modules/fstream/lib/proxy-writer.js +0 -109
  483. data/lib/node_modules/npm/node_modules/fstream/lib/reader.js +0 -260
  484. data/lib/node_modules/npm/node_modules/fstream/lib/socket-reader.js +0 -38
  485. data/lib/node_modules/npm/node_modules/fstream/lib/writer.js +0 -389
  486. data/lib/node_modules/npm/node_modules/fstream/package.json +0 -43
  487. data/lib/node_modules/npm/node_modules/github-url-from-git/History.md +0 -10
  488. data/lib/node_modules/npm/node_modules/github-url-from-git/Makefile +0 -5
  489. data/lib/node_modules/npm/node_modules/github-url-from-git/Readme.md +0 -41
  490. data/lib/node_modules/npm/node_modules/github-url-from-git/index.js +0 -12
  491. data/lib/node_modules/npm/node_modules/github-url-from-git/package.json +0 -31
  492. data/lib/node_modules/npm/node_modules/github-url-from-git/test.js +0 -40
  493. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/LICENSE +0 -27
  494. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/README.md +0 -14
  495. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/index.js +0 -9
  496. data/lib/node_modules/npm/node_modules/github-url-from-username-repo/package.json +0 -33
  497. data/lib/node_modules/npm/node_modules/glob/LICENSE +0 -27
  498. data/lib/node_modules/npm/node_modules/glob/README.md +0 -250
  499. data/lib/node_modules/npm/node_modules/glob/examples/g.js +0 -9
  500. data/lib/node_modules/npm/node_modules/glob/examples/usr-local.js +0 -9
  501. data/lib/node_modules/npm/node_modules/glob/glob.js +0 -680
  502. data/lib/node_modules/npm/node_modules/glob/package.json +0 -39
  503. data/lib/node_modules/npm/node_modules/graceful-fs/LICENSE +0 -27
  504. data/lib/node_modules/npm/node_modules/graceful-fs/README.md +0 -26
  505. data/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js +0 -161
  506. data/lib/node_modules/npm/node_modules/graceful-fs/package.json +0 -48
  507. data/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js +0 -228
  508. data/lib/node_modules/npm/node_modules/inherits/LICENSE +0 -16
  509. data/lib/node_modules/npm/node_modules/inherits/README.md +0 -42
  510. data/lib/node_modules/npm/node_modules/inherits/inherits.js +0 -1
  511. data/lib/node_modules/npm/node_modules/inherits/inherits_browser.js +0 -23
  512. data/lib/node_modules/npm/node_modules/inherits/package.json +0 -32
  513. data/lib/node_modules/npm/node_modules/inherits/test.js +0 -25
  514. data/lib/node_modules/npm/node_modules/ini/LICENSE +0 -23
  515. data/lib/node_modules/npm/node_modules/ini/README.md +0 -79
  516. data/lib/node_modules/npm/node_modules/ini/ini.js +0 -166
  517. data/lib/node_modules/npm/node_modules/ini/package.json +0 -29
  518. data/lib/node_modules/npm/node_modules/init-package-json/README.md +0 -43
  519. data/lib/node_modules/npm/node_modules/init-package-json/default-input.js +0 -181
  520. data/lib/node_modules/npm/node_modules/init-package-json/example/example-basic.js +0 -8
  521. data/lib/node_modules/npm/node_modules/init-package-json/example/example-default.js +0 -7
  522. data/lib/node_modules/npm/node_modules/init-package-json/example/example-npm.js +0 -13
  523. data/lib/node_modules/npm/node_modules/init-package-json/example/init/basic-init.js +0 -1
  524. data/lib/node_modules/npm/node_modules/init-package-json/init-package-json.js +0 -129
  525. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/LICENSE +0 -15
  526. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/README.md +0 -133
  527. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/index.js +0 -11
  528. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md +0 -8
  529. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js +0 -191
  530. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js +0 -37
  531. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json +0 -10
  532. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js +0 -61
  533. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/package.json +0 -32
  534. data/lib/node_modules/npm/node_modules/init-package-json/node_modules/promzard/promzard.js +0 -216
  535. data/lib/node_modules/npm/node_modules/init-package-json/package.json +0 -48
  536. data/lib/node_modules/npm/node_modules/lockfile/LICENSE +0 -27
  537. data/lib/node_modules/npm/node_modules/lockfile/README.md +0 -81
  538. data/lib/node_modules/npm/node_modules/lockfile/lockfile.js +0 -272
  539. data/lib/node_modules/npm/node_modules/lockfile/package.json +0 -45
  540. data/lib/node_modules/npm/node_modules/lru-cache/CONTRIBUTORS +0 -14
  541. data/lib/node_modules/npm/node_modules/lru-cache/LICENSE +0 -23
  542. data/lib/node_modules/npm/node_modules/lru-cache/README.md +0 -97
  543. data/lib/node_modules/npm/node_modules/lru-cache/lib/lru-cache.js +0 -252
  544. data/lib/node_modules/npm/node_modules/lru-cache/package.json +0 -33
  545. data/lib/node_modules/npm/node_modules/minimatch/LICENSE +0 -23
  546. data/lib/node_modules/npm/node_modules/minimatch/README.md +0 -218
  547. data/lib/node_modules/npm/node_modules/minimatch/minimatch.js +0 -1055
  548. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/LICENSE +0 -27
  549. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/README.md +0 -53
  550. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/bench.js +0 -283
  551. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/package.json +0 -42
  552. data/lib/node_modules/npm/node_modules/minimatch/node_modules/sigmund/sigmund.js +0 -39
  553. data/lib/node_modules/npm/node_modules/minimatch/package.json +0 -40
  554. data/lib/node_modules/npm/node_modules/mkdirp/LICENSE +0 -21
  555. data/lib/node_modules/npm/node_modules/mkdirp/README.markdown +0 -63
  556. data/lib/node_modules/npm/node_modules/mkdirp/examples/pow.js +0 -6
  557. data/lib/node_modules/npm/node_modules/mkdirp/index.js +0 -82
  558. data/lib/node_modules/npm/node_modules/mkdirp/package.json +0 -33
  559. data/lib/node_modules/npm/node_modules/node-gyp/LICENSE +0 -24
  560. data/lib/node_modules/npm/node_modules/node-gyp/README.md +0 -163
  561. data/lib/node_modules/npm/node_modules/node-gyp/addon.gypi +0 -59
  562. data/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js +0 -133
  563. data/lib/node_modules/npm/node_modules/node-gyp/gyp/AUTHORS +0 -10
  564. data/lib/node_modules/npm/node_modules/node-gyp/gyp/DEPS +0 -24
  565. data/lib/node_modules/npm/node_modules/node-gyp/gyp/LICENSE +0 -27
  566. data/lib/node_modules/npm/node_modules/node-gyp/gyp/OWNERS +0 -1
  567. data/lib/node_modules/npm/node_modules/node-gyp/gyp/PRESUBMIT.py +0 -115
  568. data/lib/node_modules/npm/node_modules/node-gyp/gyp/buildbot/buildbot_run.py +0 -148
  569. data/lib/node_modules/npm/node_modules/node-gyp/gyp/codereview.settings +0 -10
  570. data/lib/node_modules/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  571. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp +0 -7
  572. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp.bat +0 -5
  573. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_dummy.c +0 -7
  574. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py +0 -18
  575. data/lib/node_modules/npm/node_modules/node-gyp/gyp/gyptest.py +0 -274
  576. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -340
  577. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -208
  578. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1051
  579. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1482
  580. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -58
  581. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -147
  582. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -267
  583. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -407
  584. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -537
  585. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -513
  586. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -72
  587. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -157
  588. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -103
  589. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -49
  590. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  591. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1069
  592. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -81
  593. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -308
  594. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -87
  595. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -56
  596. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2172
  597. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3270
  598. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -37
  599. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2150
  600. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -44
  601. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1224
  602. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -23
  603. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -2809
  604. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -90
  605. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -264
  606. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -870
  607. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -160
  608. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -176
  609. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1324
  610. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -2888
  611. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -69
  612. data/lib/node_modules/npm/node_modules/node-gyp/gyp/pylintrc +0 -307
  613. data/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples +0 -81
  614. data/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples.bat +0 -5
  615. data/lib/node_modules/npm/node_modules/node-gyp/gyp/setup.py +0 -19
  616. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/README +0 -15
  617. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/README +0 -5
  618. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec +0 -27
  619. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec +0 -226
  620. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/README +0 -12
  621. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el +0 -63
  622. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el +0 -252
  623. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh +0 -7
  624. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp +0 -1105
  625. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified +0 -1107
  626. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/graphviz.py +0 -100
  627. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py +0 -155
  628. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py +0 -168
  629. data/lib/node_modules/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py +0 -329
  630. data/lib/node_modules/npm/node_modules/node-gyp/lib/build.js +0 -275
  631. data/lib/node_modules/npm/node_modules/node-gyp/lib/clean.js +0 -22
  632. data/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js +0 -344
  633. data/lib/node_modules/npm/node_modules/node-gyp/lib/install.js +0 -362
  634. data/lib/node_modules/npm/node_modules/node-gyp/lib/list.js +0 -33
  635. data/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js +0 -225
  636. data/lib/node_modules/npm/node_modules/node-gyp/lib/rebuild.js +0 -16
  637. data/lib/node_modules/npm/node_modules/node-gyp/lib/remove.js +0 -56
  638. data/lib/node_modules/npm/node_modules/node-gyp/package.json +0 -55
  639. data/lib/node_modules/npm/node_modules/nopt/LICENSE +0 -23
  640. data/lib/node_modules/npm/node_modules/nopt/README.md +0 -210
  641. data/lib/node_modules/npm/node_modules/nopt/bin/nopt.js +0 -51
  642. data/lib/node_modules/npm/node_modules/nopt/examples/my-program.js +0 -30
  643. data/lib/node_modules/npm/node_modules/nopt/lib/nopt.js +0 -407
  644. data/lib/node_modules/npm/node_modules/nopt/package.json +0 -39
  645. data/lib/node_modules/npm/node_modules/npm-install-checks/LICENSE +0 -234
  646. data/lib/node_modules/npm/node_modules/npm-install-checks/README.md +0 -25
  647. data/lib/node_modules/npm/node_modules/npm-install-checks/index.js +0 -146
  648. data/lib/node_modules/npm/node_modules/npm-install-checks/package.json +0 -43
  649. data/lib/node_modules/npm/node_modules/npm-registry-client/LICENSE +0 -27
  650. data/lib/node_modules/npm/node_modules/npm-registry-client/README.md +0 -176
  651. data/lib/node_modules/npm/node_modules/npm-registry-client/index.js +0 -55
  652. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/adduser.js +0 -138
  653. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/bugs.js +0 -9
  654. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/deprecate.js +0 -28
  655. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js +0 -184
  656. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/publish.js +0 -156
  657. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js +0 -270
  658. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/star.js +0 -29
  659. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/stars.js +0 -9
  660. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/tag.js +0 -6
  661. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/unpublish.js +0 -104
  662. data/lib/node_modules/npm/node_modules/npm-registry-client/lib/upload.js +0 -22
  663. data/lib/node_modules/npm/node_modules/npm-registry-client/package.json +0 -43
  664. data/lib/node_modules/npm/node_modules/npm-user-validate/LICENSE +0 -27
  665. data/lib/node_modules/npm/node_modules/npm-user-validate/README.md +0 -6
  666. data/lib/node_modules/npm/node_modules/npm-user-validate/npm-user-validate.js +0 -49
  667. data/lib/node_modules/npm/node_modules/npm-user-validate/package.json +0 -37
  668. data/lib/node_modules/npm/node_modules/npmconf/LICENSE +0 -27
  669. data/lib/node_modules/npm/node_modules/npmconf/README.md +0 -33
  670. data/lib/node_modules/npm/node_modules/npmconf/config-defs.js +0 -353
  671. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/LICENCE +0 -22
  672. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/index.js +0 -282
  673. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/LICENSE +0 -23
  674. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/README.md +0 -3
  675. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json +0 -33
  676. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/proto-list.js +0 -81
  677. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/package.json +0 -32
  678. data/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/readme.markdown +0 -228
  679. data/lib/node_modules/npm/node_modules/npmconf/npmconf.js +0 -338
  680. data/lib/node_modules/npm/node_modules/npmconf/package.json +0 -50
  681. data/lib/node_modules/npm/node_modules/npmlog/LICENSE +0 -27
  682. data/lib/node_modules/npm/node_modules/npmlog/README.md +0 -153
  683. data/lib/node_modules/npm/node_modules/npmlog/example.js +0 -39
  684. data/lib/node_modules/npm/node_modules/npmlog/log.js +0 -154
  685. data/lib/node_modules/npm/node_modules/npmlog/package.json +0 -32
  686. data/lib/node_modules/npm/node_modules/once/LICENSE +0 -27
  687. data/lib/node_modules/npm/node_modules/once/README.md +0 -51
  688. data/lib/node_modules/npm/node_modules/once/once.js +0 -20
  689. data/lib/node_modules/npm/node_modules/once/package.json +0 -39
  690. data/lib/node_modules/npm/node_modules/opener/LICENSE.txt +0 -14
  691. data/lib/node_modules/npm/node_modules/opener/README.md +0 -44
  692. data/lib/node_modules/npm/node_modules/opener/opener.js +0 -55
  693. data/lib/node_modules/npm/node_modules/opener/package.json +0 -34
  694. data/lib/node_modules/npm/node_modules/osenv/LICENSE +0 -25
  695. data/lib/node_modules/npm/node_modules/osenv/README.md +0 -63
  696. data/lib/node_modules/npm/node_modules/osenv/osenv.js +0 -80
  697. data/lib/node_modules/npm/node_modules/osenv/package.json +0 -38
  698. data/lib/node_modules/npm/node_modules/path-is-inside/LICENSE.txt +0 -14
  699. data/lib/node_modules/npm/node_modules/path-is-inside/README.md +0 -35
  700. data/lib/node_modules/npm/node_modules/path-is-inside/lib/path-is-inside.js +0 -24
  701. data/lib/node_modules/npm/node_modules/path-is-inside/package.json +0 -39
  702. data/lib/node_modules/npm/node_modules/read-installed/LICENSE +0 -16
  703. data/lib/node_modules/npm/node_modules/read-installed/README.md +0 -25
  704. data/lib/node_modules/npm/node_modules/read-installed/package.json +0 -39
  705. data/lib/node_modules/npm/node_modules/read-installed/read-installed.js +0 -338
  706. data/lib/node_modules/npm/node_modules/read-package-json/LICENSE +0 -15
  707. data/lib/node_modules/npm/node_modules/read-package-json/README.md +0 -166
  708. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/AUTHORS +0 -4
  709. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/LICENSE +0 -30
  710. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/README.md +0 -101
  711. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/core_module_names.json +0 -29
  712. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/extract_description.js +0 -14
  713. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/fixer.js +0 -392
  714. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/normalize.js +0 -36
  715. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/safe_format.js +0 -9
  716. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/typos.json +0 -25
  717. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/warning_messages.json +0 -28
  718. data/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/package.json +0 -53
  719. data/lib/node_modules/npm/node_modules/read-package-json/package.json +0 -39
  720. data/lib/node_modules/npm/node_modules/read-package-json/read-json.js +0 -368
  721. data/lib/node_modules/npm/node_modules/read/LICENCE +0 -25
  722. data/lib/node_modules/npm/node_modules/read/README.md +0 -53
  723. data/lib/node_modules/npm/node_modules/read/example/example.js +0 -13
  724. data/lib/node_modules/npm/node_modules/read/lib/read.js +0 -113
  725. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/LICENSE +0 -27
  726. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/README.md +0 -68
  727. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/mute.js +0 -140
  728. data/lib/node_modules/npm/node_modules/read/node_modules/mute-stream/package.json +0 -37
  729. data/lib/node_modules/npm/node_modules/read/package.json +0 -35
  730. data/lib/node_modules/npm/node_modules/read/rs.js +0 -4
  731. data/lib/node_modules/npm/node_modules/request/LICENSE +0 -55
  732. data/lib/node_modules/npm/node_modules/request/README.md +0 -364
  733. data/lib/node_modules/npm/node_modules/request/index.js +0 -157
  734. data/lib/node_modules/npm/node_modules/request/lib/copy.js +0 -8
  735. data/lib/node_modules/npm/node_modules/request/lib/debug.js +0 -7
  736. data/lib/node_modules/npm/node_modules/request/lib/getSafe.js +0 -34
  737. data/lib/node_modules/npm/node_modules/request/lib/optional.js +0 -5
  738. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/LICENSE +0 -55
  739. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/README.md +0 -4
  740. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/index.js +0 -202
  741. data/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/package.json +0 -28
  742. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/LICENSE +0 -55
  743. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/README.md +0 -4
  744. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/index.js +0 -119
  745. data/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/package.json +0 -28
  746. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/License +0 -19
  747. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/Readme.md +0 -163
  748. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/lib/form_data.js +0 -325
  749. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE +0 -19
  750. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/README.md +0 -1414
  751. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/component.json +0 -11
  752. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js +0 -955
  753. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/package.json +0 -43
  754. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/License +0 -19
  755. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/Makefile +0 -7
  756. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/Readme.md +0 -132
  757. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js +0 -185
  758. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License +0 -19
  759. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile +0 -7
  760. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md +0 -154
  761. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js +0 -99
  762. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json +0 -31
  763. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json +0 -32
  764. data/lib/node_modules/npm/node_modules/request/node_modules/form-data/package.json +0 -46
  765. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/LICENSE +0 -24
  766. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/Makefile +0 -10
  767. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/README.md +0 -627
  768. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/example/usage.js +0 -78
  769. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/images/hawk.png +0 -0
  770. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/images/logo.png +0 -0
  771. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/index.js +0 -1
  772. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/browser.js +0 -485
  773. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/client.js +0 -367
  774. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/crypto.js +0 -111
  775. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/index.js +0 -15
  776. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/server.js +0 -524
  777. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/utils.js +0 -183
  778. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE +0 -24
  779. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/Makefile +0 -11
  780. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md +0 -6
  781. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png +0 -0
  782. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/index.js +0 -1
  783. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js +0 -207
  784. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json +0 -47
  785. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE +0 -24
  786. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/Makefile +0 -11
  787. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md +0 -6
  788. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/index.js +0 -1
  789. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js +0 -68
  790. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json +0 -48
  791. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE +0 -33
  792. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/Makefile +0 -10
  793. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md +0 -436
  794. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png +0 -0
  795. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/index.js +0 -1
  796. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js +0 -132
  797. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js +0 -585
  798. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json +0 -49
  799. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE +0 -24
  800. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile +0 -11
  801. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md +0 -68
  802. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js +0 -16
  803. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js +0 -25
  804. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/index.js +0 -1
  805. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js +0 -409
  806. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json +0 -48
  807. data/lib/node_modules/npm/node_modules/request/node_modules/hawk/package.json +0 -53
  808. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/LICENSE +0 -18
  809. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/README.md +0 -75
  810. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/http_signing.md +0 -296
  811. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/index.js +0 -25
  812. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/parser.js +0 -304
  813. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/signer.js +0 -179
  814. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/util.js +0 -249
  815. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/verify.js +0 -42
  816. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE +0 -19
  817. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md +0 -50
  818. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js +0 -13
  819. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js +0 -27
  820. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js +0 -267
  821. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js +0 -36
  822. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js +0 -317
  823. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js +0 -20
  824. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json +0 -43
  825. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js +0 -172
  826. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js +0 -296
  827. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md +0 -126
  828. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js +0 -196
  829. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json +0 -20
  830. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG +0 -71
  831. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE +0 -24
  832. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README +0 -82
  833. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old +0 -298
  834. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js +0 -245
  835. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js +0 -1485
  836. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js +0 -944
  837. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype +0 -241
  838. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json +0 -18
  839. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf +0 -129
  840. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle +0 -839
  841. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/float.json +0 -13
  842. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/int.json +0 -13
  843. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/psinfo.json +0 -104
  844. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/struct.json +0 -19
  845. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.fail.js +0 -39
  846. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.float.js +0 -14
  847. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.int.js +0 -14
  848. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.psinfo.js +0 -17
  849. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.struct.js +0 -18
  850. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/tst.typedef.js +0 -15
  851. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctf/typedef.json +0 -14
  852. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.rfloat.js +0 -767
  853. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/float/tst.wfloat.js +0 -753
  854. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.64.js +0 -638
  855. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.rint.js +0 -101
  856. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wbounds.js +0 -53
  857. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/int/tst.wint.js +0 -92
  858. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.64.js +0 -451
  859. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.roundtrip.js +0 -81
  860. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.ruint.js +0 -95
  861. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctio/uint/tst.wuint.js +0 -156
  862. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicr.js +0 -50
  863. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.basicw.js +0 -44
  864. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.char.js +0 -42
  865. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.endian.js +0 -45
  866. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.oldwrite.js +0 -28
  867. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.readSize.js +0 -128
  868. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.structw.js +0 -28
  869. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tst/ctype/tst.writeStruct.js +0 -31
  870. data/lib/node_modules/npm/node_modules/request/node_modules/http-signature/package.json +0 -36
  871. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE +0 -27
  872. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/README.md +0 -49
  873. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/package.json +0 -33
  874. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js +0 -39
  875. data/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/test.js +0 -128
  876. data/lib/node_modules/npm/node_modules/request/node_modules/mime/LICENSE +0 -19
  877. data/lib/node_modules/npm/node_modules/request/node_modules/mime/README.md +0 -66
  878. data/lib/node_modules/npm/node_modules/request/node_modules/mime/mime.js +0 -114
  879. data/lib/node_modules/npm/node_modules/request/node_modules/mime/package.json +0 -36
  880. data/lib/node_modules/npm/node_modules/request/node_modules/mime/test.js +0 -84
  881. data/lib/node_modules/npm/node_modules/request/node_modules/mime/types/mime.types +0 -1588
  882. data/lib/node_modules/npm/node_modules/request/node_modules/mime/types/node.types +0 -77
  883. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/LICENSE.md +0 -2
  884. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/README.md +0 -207
  885. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md +0 -53
  886. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +0 -174
  887. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh +0 -34
  888. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c +0 -34
  889. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js +0 -84
  890. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/component.json +0 -18
  891. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/package.json +0 -35
  892. data/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/uuid.js +0 -245
  893. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/LICENSE +0 -55
  894. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/README.md +0 -4
  895. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/index.js +0 -43
  896. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/package.json +0 -31
  897. data/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/test.js +0 -49
  898. data/lib/node_modules/npm/node_modules/request/node_modules/qs/Readme.md +0 -58
  899. data/lib/node_modules/npm/node_modules/request/node_modules/qs/index.js +0 -366
  900. data/lib/node_modules/npm/node_modules/request/node_modules/qs/package.json +0 -38
  901. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/LICENSE +0 -78
  902. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/README.md +0 -380
  903. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js +0 -230
  904. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js +0 -947
  905. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js +0 -102
  906. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js +0 -69
  907. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-GPL.txt +0 -278
  908. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt +0 -20
  909. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json +0 -73
  910. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js +0 -508
  911. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.min.js +0 -2
  912. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/LICENSE.txt +0 -20
  913. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/README.md +0 -35
  914. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/README.md +0 -69
  915. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/doc/parse.php +0 -35
  916. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/docdown.php +0 -38
  917. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Alias.php +0 -226
  918. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Entry.php +0 -442
  919. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/vendor/docdown/src/DocDown/Generator.php +0 -563
  920. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/package.json +0 -46
  921. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/public-suffix.txt +0 -5229
  922. data/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/test.js +0 -1340
  923. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/LICENSE +0 -55
  924. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/README.md +0 -4
  925. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js +0 -227
  926. data/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/package.json +0 -28
  927. data/lib/node_modules/npm/node_modules/request/package.json +0 -57
  928. data/lib/node_modules/npm/node_modules/request/request.js +0 -1260
  929. data/lib/node_modules/npm/node_modules/retry/License +0 -21
  930. data/lib/node_modules/npm/node_modules/retry/Makefile +0 -7
  931. data/lib/node_modules/npm/node_modules/retry/Readme.md +0 -167
  932. data/lib/node_modules/npm/node_modules/retry/equation.gif +0 -0
  933. data/lib/node_modules/npm/node_modules/retry/example/dns.js +0 -31
  934. data/lib/node_modules/npm/node_modules/retry/index.js +0 -1
  935. data/lib/node_modules/npm/node_modules/retry/lib/retry.js +0 -50
  936. data/lib/node_modules/npm/node_modules/retry/lib/retry_operation.js +0 -109
  937. data/lib/node_modules/npm/node_modules/retry/package.json +0 -29
  938. data/lib/node_modules/npm/node_modules/rimraf/AUTHORS +0 -6
  939. data/lib/node_modules/npm/node_modules/rimraf/LICENSE +0 -23
  940. data/lib/node_modules/npm/node_modules/rimraf/README.md +0 -30
  941. data/lib/node_modules/npm/node_modules/rimraf/bin.js +0 -33
  942. data/lib/node_modules/npm/node_modules/rimraf/package.json +0 -56
  943. data/lib/node_modules/npm/node_modules/rimraf/rimraf.js +0 -178
  944. data/lib/node_modules/npm/node_modules/semver/LICENSE +0 -27
  945. data/lib/node_modules/npm/node_modules/semver/Makefile +0 -24
  946. data/lib/node_modules/npm/node_modules/semver/README.md +0 -142
  947. data/lib/node_modules/npm/node_modules/semver/bin/semver +0 -124
  948. data/lib/node_modules/npm/node_modules/semver/foot.js +0 -6
  949. data/lib/node_modules/npm/node_modules/semver/head.js +0 -2
  950. data/lib/node_modules/npm/node_modules/semver/package.json +0 -32
  951. data/lib/node_modules/npm/node_modules/semver/semver.browser.js +0 -1007
  952. data/lib/node_modules/npm/node_modules/semver/semver.browser.js.gz +0 -0
  953. data/lib/node_modules/npm/node_modules/semver/semver.js +0 -1011
  954. data/lib/node_modules/npm/node_modules/semver/semver.min.js +0 -1
  955. data/lib/node_modules/npm/node_modules/semver/semver.min.js.gz +0 -0
  956. data/lib/node_modules/npm/node_modules/sha/LICENSE +0 -46
  957. data/lib/node_modules/npm/node_modules/sha/README.md +0 -49
  958. data/lib/node_modules/npm/node_modules/sha/index.js +0 -120
  959. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/LICENSE +0 -27
  960. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/README.md +0 -768
  961. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/duplex.js +0 -1
  962. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/float.patch +0 -68
  963. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_duplex.js +0 -69
  964. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_passthrough.js +0 -41
  965. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_readable.js +0 -927
  966. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_transform.js +0 -205
  967. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/lib/_stream_writable.js +0 -369
  968. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/package.json +0 -36
  969. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/passthrough.js +0 -1
  970. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/readable.js +0 -6
  971. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/transform.js +0 -1
  972. data/lib/node_modules/npm/node_modules/sha/node_modules/readable-stream/writable.js +0 -1
  973. data/lib/node_modules/npm/node_modules/sha/package.json +0 -32
  974. data/lib/node_modules/npm/node_modules/slide/LICENSE +0 -15
  975. data/lib/node_modules/npm/node_modules/slide/README.md +0 -143
  976. data/lib/node_modules/npm/node_modules/slide/index.js +0 -1
  977. data/lib/node_modules/npm/node_modules/slide/lib/async-map-ordered.js +0 -65
  978. data/lib/node_modules/npm/node_modules/slide/lib/async-map.js +0 -56
  979. data/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js +0 -16
  980. data/lib/node_modules/npm/node_modules/slide/lib/chain.js +0 -20
  981. data/lib/node_modules/npm/node_modules/slide/lib/slide.js +0 -3
  982. data/lib/node_modules/npm/node_modules/slide/package.json +0 -35
  983. data/lib/node_modules/npm/node_modules/tar/LICENCE +0 -25
  984. data/lib/node_modules/npm/node_modules/tar/README.md +0 -46
  985. data/lib/node_modules/npm/node_modules/tar/examples/extracter.js +0 -11
  986. data/lib/node_modules/npm/node_modules/tar/examples/reader.js +0 -36
  987. data/lib/node_modules/npm/node_modules/tar/lib/buffer-entry.js +0 -30
  988. data/lib/node_modules/npm/node_modules/tar/lib/entry-writer.js +0 -169
  989. data/lib/node_modules/npm/node_modules/tar/lib/entry.js +0 -213
  990. data/lib/node_modules/npm/node_modules/tar/lib/extended-header-writer.js +0 -191
  991. data/lib/node_modules/npm/node_modules/tar/lib/extended-header.js +0 -140
  992. data/lib/node_modules/npm/node_modules/tar/lib/extract.js +0 -78
  993. data/lib/node_modules/npm/node_modules/tar/lib/global-header-writer.js +0 -14
  994. data/lib/node_modules/npm/node_modules/tar/lib/header.js +0 -385
  995. data/lib/node_modules/npm/node_modules/tar/lib/pack.js +0 -231
  996. data/lib/node_modules/npm/node_modules/tar/lib/parse.js +0 -270
  997. data/lib/node_modules/npm/node_modules/tar/package.json +0 -40
  998. data/lib/node_modules/npm/node_modules/tar/tar.js +0 -173
  999. data/lib/node_modules/npm/node_modules/text-table/LICENSE +0 -18
  1000. data/lib/node_modules/npm/node_modules/text-table/example/align.js +0 -8
  1001. data/lib/node_modules/npm/node_modules/text-table/example/center.js +0 -8
  1002. data/lib/node_modules/npm/node_modules/text-table/example/dotalign.js +0 -9
  1003. data/lib/node_modules/npm/node_modules/text-table/example/doubledot.js +0 -11
  1004. data/lib/node_modules/npm/node_modules/text-table/example/table.js +0 -6
  1005. data/lib/node_modules/npm/node_modules/text-table/index.js +0 -86
  1006. data/lib/node_modules/npm/node_modules/text-table/package.json +0 -52
  1007. data/lib/node_modules/npm/node_modules/text-table/readme.markdown +0 -134
  1008. data/lib/node_modules/npm/node_modules/uid-number/LICENCE +0 -25
  1009. data/lib/node_modules/npm/node_modules/uid-number/README.md +0 -17
  1010. data/lib/node_modules/npm/node_modules/uid-number/get-uid-gid.js +0 -24
  1011. data/lib/node_modules/npm/node_modules/uid-number/package.json +0 -35
  1012. data/lib/node_modules/npm/node_modules/uid-number/uid-number.js +0 -54
  1013. data/lib/node_modules/npm/node_modules/which/LICENSE +0 -23
  1014. data/lib/node_modules/npm/node_modules/which/README.md +0 -5
  1015. data/lib/node_modules/npm/node_modules/which/bin/which +0 -14
  1016. data/lib/node_modules/npm/node_modules/which/package.json +0 -34
  1017. data/lib/node_modules/npm/node_modules/which/which.js +0 -104
  1018. data/lib/node_modules/npm/package.json +0 -155
  1019. data/lib/node_modules/npm/scripts/clean-old.sh +0 -165
  1020. data/lib/node_modules/npm/scripts/doc-build.sh +0 -84
  1021. data/lib/node_modules/npm/scripts/index-build.js +0 -62
  1022. data/lib/node_modules/npm/scripts/install.sh +0 -313
  1023. data/lib/node_modules/npm/scripts/release.sh +0 -36
  1024. data/lib/node_modules/npm/scripts/relocate.sh +0 -26
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env python
2
- # Copyright (c) 2012 Google Inc. All rights reserved.
3
- # Use of this source code is governed by a BSD-style license that can be
4
- # found in the LICENSE file.
5
-
6
- """ Unit tests for the msvs.py file. """
7
-
8
- import gyp.generator.msvs as msvs
9
- import unittest
10
- import StringIO
11
-
12
-
13
- class TestSequenceFunctions(unittest.TestCase):
14
-
15
- def setUp(self):
16
- self.stderr = StringIO.StringIO()
17
-
18
- def test_GetLibraries(self):
19
- self.assertEqual(
20
- msvs._GetLibraries({}),
21
- [])
22
- self.assertEqual(
23
- msvs._GetLibraries({'libraries': []}),
24
- [])
25
- self.assertEqual(
26
- msvs._GetLibraries({'other':'foo', 'libraries': ['a.lib']}),
27
- ['a.lib'])
28
- self.assertEqual(
29
- msvs._GetLibraries({'libraries': ['-la']}),
30
- ['a.lib'])
31
- self.assertEqual(
32
- msvs._GetLibraries({'libraries': ['a.lib', 'b.lib', 'c.lib', '-lb.lib',
33
- '-lb.lib', 'd.lib', 'a.lib']}),
34
- ['c.lib', 'b.lib', 'd.lib', 'a.lib'])
35
-
36
- if __name__ == '__main__':
37
- unittest.main()
@@ -1,2150 +0,0 @@
1
- # Copyright (c) 2013 Google Inc. All rights reserved.
2
- # Use of this source code is governed by a BSD-style license that can be
3
- # found in the LICENSE file.
4
-
5
- import copy
6
- import hashlib
7
- import json
8
- import multiprocessing
9
- import os.path
10
- import re
11
- import signal
12
- import subprocess
13
- import sys
14
- import gyp
15
- import gyp.common
16
- import gyp.msvs_emulation
17
- import gyp.MSVSUtil as MSVSUtil
18
- import gyp.xcode_emulation
19
- from cStringIO import StringIO
20
-
21
- from gyp.common import GetEnvironFallback
22
- import gyp.ninja_syntax as ninja_syntax
23
-
24
- generator_default_variables = {
25
- 'EXECUTABLE_PREFIX': '',
26
- 'EXECUTABLE_SUFFIX': '',
27
- 'STATIC_LIB_PREFIX': 'lib',
28
- 'STATIC_LIB_SUFFIX': '.a',
29
- 'SHARED_LIB_PREFIX': 'lib',
30
-
31
- # Gyp expects the following variables to be expandable by the build
32
- # system to the appropriate locations. Ninja prefers paths to be
33
- # known at gyp time. To resolve this, introduce special
34
- # variables starting with $! and $| (which begin with a $ so gyp knows it
35
- # should be treated specially, but is otherwise an invalid
36
- # ninja/shell variable) that are passed to gyp here but expanded
37
- # before writing out into the target .ninja files; see
38
- # ExpandSpecial.
39
- # $! is used for variables that represent a path and that can only appear at
40
- # the start of a string, while $| is used for variables that can appear
41
- # anywhere in a string.
42
- 'INTERMEDIATE_DIR': '$!INTERMEDIATE_DIR',
43
- 'SHARED_INTERMEDIATE_DIR': '$!PRODUCT_DIR/gen',
44
- 'PRODUCT_DIR': '$!PRODUCT_DIR',
45
- 'CONFIGURATION_NAME': '$|CONFIGURATION_NAME',
46
-
47
- # Special variables that may be used by gyp 'rule' targets.
48
- # We generate definitions for these variables on the fly when processing a
49
- # rule.
50
- 'RULE_INPUT_ROOT': '${root}',
51
- 'RULE_INPUT_DIRNAME': '${dirname}',
52
- 'RULE_INPUT_PATH': '${source}',
53
- 'RULE_INPUT_EXT': '${ext}',
54
- 'RULE_INPUT_NAME': '${name}',
55
- }
56
-
57
- # Placates pylint.
58
- generator_additional_non_configuration_keys = []
59
- generator_additional_path_sections = []
60
- generator_extra_sources_for_rules = []
61
- generator_filelist_paths = None
62
-
63
- # TODO: figure out how to not build extra host objects in the non-cross-compile
64
- # case when this is enabled, and enable unconditionally.
65
- generator_supports_multiple_toolsets = (
66
- os.environ.get('GYP_CROSSCOMPILE') or
67
- os.environ.get('AR_host') or
68
- os.environ.get('CC_host') or
69
- os.environ.get('CXX_host') or
70
- os.environ.get('AR_target') or
71
- os.environ.get('CC_target') or
72
- os.environ.get('CXX_target'))
73
-
74
-
75
- def StripPrefix(arg, prefix):
76
- if arg.startswith(prefix):
77
- return arg[len(prefix):]
78
- return arg
79
-
80
-
81
- def QuoteShellArgument(arg, flavor):
82
- """Quote a string such that it will be interpreted as a single argument
83
- by the shell."""
84
- # Rather than attempting to enumerate the bad shell characters, just
85
- # whitelist common OK ones and quote anything else.
86
- if re.match(r'^[a-zA-Z0-9_=.\\/-]+$', arg):
87
- return arg # No quoting necessary.
88
- if flavor == 'win':
89
- return gyp.msvs_emulation.QuoteForRspFile(arg)
90
- return "'" + arg.replace("'", "'" + '"\'"' + "'") + "'"
91
-
92
-
93
- def Define(d, flavor):
94
- """Takes a preprocessor define and returns a -D parameter that's ninja- and
95
- shell-escaped."""
96
- if flavor == 'win':
97
- # cl.exe replaces literal # characters with = in preprocesor definitions for
98
- # some reason. Octal-encode to work around that.
99
- d = d.replace('#', '\\%03o' % ord('#'))
100
- return QuoteShellArgument(ninja_syntax.escape('-D' + d), flavor)
101
-
102
-
103
- def AddArch(output, arch):
104
- """Adds an arch string to an output path."""
105
- output, extension = os.path.splitext(output)
106
- return '%s.%s%s' % (output, arch, extension)
107
-
108
-
109
- class Target:
110
- """Target represents the paths used within a single gyp target.
111
-
112
- Conceptually, building a single target A is a series of steps:
113
-
114
- 1) actions/rules/copies generates source/resources/etc.
115
- 2) compiles generates .o files
116
- 3) link generates a binary (library/executable)
117
- 4) bundle merges the above in a mac bundle
118
-
119
- (Any of these steps can be optional.)
120
-
121
- From a build ordering perspective, a dependent target B could just
122
- depend on the last output of this series of steps.
123
-
124
- But some dependent commands sometimes need to reach inside the box.
125
- For example, when linking B it needs to get the path to the static
126
- library generated by A.
127
-
128
- This object stores those paths. To keep things simple, member
129
- variables only store concrete paths to single files, while methods
130
- compute derived values like "the last output of the target".
131
- """
132
- def __init__(self, type):
133
- # Gyp type ("static_library", etc.) of this target.
134
- self.type = type
135
- # File representing whether any input dependencies necessary for
136
- # dependent actions have completed.
137
- self.preaction_stamp = None
138
- # File representing whether any input dependencies necessary for
139
- # dependent compiles have completed.
140
- self.precompile_stamp = None
141
- # File representing the completion of actions/rules/copies, if any.
142
- self.actions_stamp = None
143
- # Path to the output of the link step, if any.
144
- self.binary = None
145
- # Path to the file representing the completion of building the bundle,
146
- # if any.
147
- self.bundle = None
148
- # On Windows, incremental linking requires linking against all the .objs
149
- # that compose a .lib (rather than the .lib itself). That list is stored
150
- # here.
151
- self.component_objs = None
152
- # Windows only. The import .lib is the output of a build step, but
153
- # because dependents only link against the lib (not both the lib and the
154
- # dll) we keep track of the import library here.
155
- self.import_lib = None
156
-
157
- def Linkable(self):
158
- """Return true if this is a target that can be linked against."""
159
- return self.type in ('static_library', 'shared_library')
160
-
161
- def UsesToc(self, flavor):
162
- """Return true if the target should produce a restat rule based on a TOC
163
- file."""
164
- # For bundles, the .TOC should be produced for the binary, not for
165
- # FinalOutput(). But the naive approach would put the TOC file into the
166
- # bundle, so don't do this for bundles for now.
167
- if flavor == 'win' or self.bundle:
168
- return False
169
- return self.type in ('shared_library', 'loadable_module')
170
-
171
- def PreActionInput(self, flavor):
172
- """Return the path, if any, that should be used as a dependency of
173
- any dependent action step."""
174
- if self.UsesToc(flavor):
175
- return self.FinalOutput() + '.TOC'
176
- return self.FinalOutput() or self.preaction_stamp
177
-
178
- def PreCompileInput(self):
179
- """Return the path, if any, that should be used as a dependency of
180
- any dependent compile step."""
181
- return self.actions_stamp or self.precompile_stamp
182
-
183
- def FinalOutput(self):
184
- """Return the last output of the target, which depends on all prior
185
- steps."""
186
- return self.bundle or self.binary or self.actions_stamp
187
-
188
-
189
- # A small discourse on paths as used within the Ninja build:
190
- # All files we produce (both at gyp and at build time) appear in the
191
- # build directory (e.g. out/Debug).
192
- #
193
- # Paths within a given .gyp file are always relative to the directory
194
- # containing the .gyp file. Call these "gyp paths". This includes
195
- # sources as well as the starting directory a given gyp rule/action
196
- # expects to be run from. We call the path from the source root to
197
- # the gyp file the "base directory" within the per-.gyp-file
198
- # NinjaWriter code.
199
- #
200
- # All paths as written into the .ninja files are relative to the build
201
- # directory. Call these paths "ninja paths".
202
- #
203
- # We translate between these two notions of paths with two helper
204
- # functions:
205
- #
206
- # - GypPathToNinja translates a gyp path (i.e. relative to the .gyp file)
207
- # into the equivalent ninja path.
208
- #
209
- # - GypPathToUniqueOutput translates a gyp path into a ninja path to write
210
- # an output file; the result can be namespaced such that it is unique
211
- # to the input file name as well as the output target name.
212
-
213
- class NinjaWriter:
214
- def __init__(self, qualified_target, target_outputs, base_dir, build_dir,
215
- output_file, toplevel_build, output_file_name, flavor,
216
- toplevel_dir=None):
217
- """
218
- base_dir: path from source root to directory containing this gyp file,
219
- by gyp semantics, all input paths are relative to this
220
- build_dir: path from source root to build output
221
- toplevel_dir: path to the toplevel directory
222
- """
223
-
224
- self.qualified_target = qualified_target
225
- self.target_outputs = target_outputs
226
- self.base_dir = base_dir
227
- self.build_dir = build_dir
228
- self.ninja = ninja_syntax.Writer(output_file)
229
- self.toplevel_build = toplevel_build
230
- self.output_file_name = output_file_name
231
-
232
- self.flavor = flavor
233
- self.abs_build_dir = None
234
- if toplevel_dir is not None:
235
- self.abs_build_dir = os.path.abspath(os.path.join(toplevel_dir,
236
- build_dir))
237
- self.obj_ext = '.obj' if flavor == 'win' else '.o'
238
- if flavor == 'win':
239
- # See docstring of msvs_emulation.GenerateEnvironmentFiles().
240
- self.win_env = {}
241
- for arch in ('x86', 'x64'):
242
- self.win_env[arch] = 'environment.' + arch
243
-
244
- # Relative path from build output dir to base dir.
245
- build_to_top = gyp.common.InvertRelativePath(build_dir, toplevel_dir)
246
- self.build_to_base = os.path.join(build_to_top, base_dir)
247
- # Relative path from base dir to build dir.
248
- base_to_top = gyp.common.InvertRelativePath(base_dir, toplevel_dir)
249
- self.base_to_build = os.path.join(base_to_top, build_dir)
250
-
251
- def ExpandSpecial(self, path, product_dir=None):
252
- """Expand specials like $!PRODUCT_DIR in |path|.
253
-
254
- If |product_dir| is None, assumes the cwd is already the product
255
- dir. Otherwise, |product_dir| is the relative path to the product
256
- dir.
257
- """
258
-
259
- PRODUCT_DIR = '$!PRODUCT_DIR'
260
- if PRODUCT_DIR in path:
261
- if product_dir:
262
- path = path.replace(PRODUCT_DIR, product_dir)
263
- else:
264
- path = path.replace(PRODUCT_DIR + '/', '')
265
- path = path.replace(PRODUCT_DIR + '\\', '')
266
- path = path.replace(PRODUCT_DIR, '.')
267
-
268
- INTERMEDIATE_DIR = '$!INTERMEDIATE_DIR'
269
- if INTERMEDIATE_DIR in path:
270
- int_dir = self.GypPathToUniqueOutput('gen')
271
- # GypPathToUniqueOutput generates a path relative to the product dir,
272
- # so insert product_dir in front if it is provided.
273
- path = path.replace(INTERMEDIATE_DIR,
274
- os.path.join(product_dir or '', int_dir))
275
-
276
- CONFIGURATION_NAME = '$|CONFIGURATION_NAME'
277
- path = path.replace(CONFIGURATION_NAME, self.config_name)
278
-
279
- return path
280
-
281
- def ExpandRuleVariables(self, path, root, dirname, source, ext, name):
282
- if self.flavor == 'win':
283
- path = self.msvs_settings.ConvertVSMacros(
284
- path, config=self.config_name)
285
- path = path.replace(generator_default_variables['RULE_INPUT_ROOT'], root)
286
- path = path.replace(generator_default_variables['RULE_INPUT_DIRNAME'],
287
- dirname)
288
- path = path.replace(generator_default_variables['RULE_INPUT_PATH'], source)
289
- path = path.replace(generator_default_variables['RULE_INPUT_EXT'], ext)
290
- path = path.replace(generator_default_variables['RULE_INPUT_NAME'], name)
291
- return path
292
-
293
- def GypPathToNinja(self, path, env=None):
294
- """Translate a gyp path to a ninja path, optionally expanding environment
295
- variable references in |path| with |env|.
296
-
297
- See the above discourse on path conversions."""
298
- if env:
299
- if self.flavor == 'mac':
300
- path = gyp.xcode_emulation.ExpandEnvVars(path, env)
301
- elif self.flavor == 'win':
302
- path = gyp.msvs_emulation.ExpandMacros(path, env)
303
- if path.startswith('$!'):
304
- expanded = self.ExpandSpecial(path)
305
- if self.flavor == 'win':
306
- expanded = os.path.normpath(expanded)
307
- return expanded
308
- if '$|' in path:
309
- path = self.ExpandSpecial(path)
310
- assert '$' not in path, path
311
- return os.path.normpath(os.path.join(self.build_to_base, path))
312
-
313
- def GypPathToUniqueOutput(self, path, qualified=True):
314
- """Translate a gyp path to a ninja path for writing output.
315
-
316
- If qualified is True, qualify the resulting filename with the name
317
- of the target. This is necessary when e.g. compiling the same
318
- path twice for two separate output targets.
319
-
320
- See the above discourse on path conversions."""
321
-
322
- path = self.ExpandSpecial(path)
323
- assert not path.startswith('$'), path
324
-
325
- # Translate the path following this scheme:
326
- # Input: foo/bar.gyp, target targ, references baz/out.o
327
- # Output: obj/foo/baz/targ.out.o (if qualified)
328
- # obj/foo/baz/out.o (otherwise)
329
- # (and obj.host instead of obj for cross-compiles)
330
- #
331
- # Why this scheme and not some other one?
332
- # 1) for a given input, you can compute all derived outputs by matching
333
- # its path, even if the input is brought via a gyp file with '..'.
334
- # 2) simple files like libraries and stamps have a simple filename.
335
-
336
- obj = 'obj'
337
- if self.toolset != 'target':
338
- obj += '.' + self.toolset
339
-
340
- path_dir, path_basename = os.path.split(path)
341
- if qualified:
342
- path_basename = self.name + '.' + path_basename
343
- return os.path.normpath(os.path.join(obj, self.base_dir, path_dir,
344
- path_basename))
345
-
346
- def WriteCollapsedDependencies(self, name, targets):
347
- """Given a list of targets, return a path for a single file
348
- representing the result of building all the targets or None.
349
-
350
- Uses a stamp file if necessary."""
351
-
352
- assert targets == filter(None, targets), targets
353
- if len(targets) == 0:
354
- return None
355
- if len(targets) > 1:
356
- stamp = self.GypPathToUniqueOutput(name + '.stamp')
357
- targets = self.ninja.build(stamp, 'stamp', targets)
358
- self.ninja.newline()
359
- return targets[0]
360
-
361
- def _SubninjaNameForArch(self, arch):
362
- output_file_base = os.path.splitext(self.output_file_name)[0]
363
- return '%s.%s.ninja' % (output_file_base, arch)
364
-
365
- def WriteSpec(self, spec, config_name, generator_flags):
366
- """The main entry point for NinjaWriter: write the build rules for a spec.
367
-
368
- Returns a Target object, which represents the output paths for this spec.
369
- Returns None if there are no outputs (e.g. a settings-only 'none' type
370
- target)."""
371
-
372
- self.config_name = config_name
373
- self.name = spec['target_name']
374
- self.toolset = spec['toolset']
375
- config = spec['configurations'][config_name]
376
- self.target = Target(spec['type'])
377
- self.is_standalone_static_library = bool(
378
- spec.get('standalone_static_library', 0))
379
- # Track if this target contains any C++ files, to decide if gcc or g++
380
- # should be used for linking.
381
- self.uses_cpp = False
382
-
383
- self.is_mac_bundle = gyp.xcode_emulation.IsMacBundle(self.flavor, spec)
384
- self.xcode_settings = self.msvs_settings = None
385
- if self.flavor == 'mac':
386
- self.xcode_settings = gyp.xcode_emulation.XcodeSettings(spec)
387
- if self.flavor == 'win':
388
- self.msvs_settings = gyp.msvs_emulation.MsvsSettings(spec,
389
- generator_flags)
390
- arch = self.msvs_settings.GetArch(config_name)
391
- self.ninja.variable('arch', self.win_env[arch])
392
- self.ninja.variable('cc', '$cl_' + arch)
393
- self.ninja.variable('cxx', '$cl_' + arch)
394
-
395
- if self.flavor == 'mac':
396
- self.archs = self.xcode_settings.GetActiveArchs(config_name)
397
- if len(self.archs) > 1:
398
- self.arch_subninjas = dict(
399
- (arch, ninja_syntax.Writer(
400
- OpenOutput(os.path.join(self.toplevel_build,
401
- self._SubninjaNameForArch(arch)),
402
- 'w')))
403
- for arch in self.archs)
404
-
405
- # Compute predepends for all rules.
406
- # actions_depends is the dependencies this target depends on before running
407
- # any of its action/rule/copy steps.
408
- # compile_depends is the dependencies this target depends on before running
409
- # any of its compile steps.
410
- actions_depends = []
411
- compile_depends = []
412
- # TODO(evan): it is rather confusing which things are lists and which
413
- # are strings. Fix these.
414
- if 'dependencies' in spec:
415
- for dep in spec['dependencies']:
416
- if dep in self.target_outputs:
417
- target = self.target_outputs[dep]
418
- actions_depends.append(target.PreActionInput(self.flavor))
419
- compile_depends.append(target.PreCompileInput())
420
- actions_depends = filter(None, actions_depends)
421
- compile_depends = filter(None, compile_depends)
422
- actions_depends = self.WriteCollapsedDependencies('actions_depends',
423
- actions_depends)
424
- compile_depends = self.WriteCollapsedDependencies('compile_depends',
425
- compile_depends)
426
- self.target.preaction_stamp = actions_depends
427
- self.target.precompile_stamp = compile_depends
428
-
429
- # Write out actions, rules, and copies. These must happen before we
430
- # compile any sources, so compute a list of predependencies for sources
431
- # while we do it.
432
- extra_sources = []
433
- mac_bundle_depends = []
434
- self.target.actions_stamp = self.WriteActionsRulesCopies(
435
- spec, extra_sources, actions_depends, mac_bundle_depends)
436
-
437
- # If we have actions/rules/copies, we depend directly on those, but
438
- # otherwise we depend on dependent target's actions/rules/copies etc.
439
- # We never need to explicitly depend on previous target's link steps,
440
- # because no compile ever depends on them.
441
- compile_depends_stamp = (self.target.actions_stamp or compile_depends)
442
-
443
- # Write out the compilation steps, if any.
444
- link_deps = []
445
- sources = extra_sources + spec.get('sources', [])
446
- if sources:
447
- if self.flavor == 'mac' and len(self.archs) > 1:
448
- # Write subninja file containing compile and link commands scoped to
449
- # a single arch if a fat binary is being built.
450
- for arch in self.archs:
451
- self.ninja.subninja(self._SubninjaNameForArch(arch))
452
-
453
- pch = None
454
- if self.flavor == 'win':
455
- gyp.msvs_emulation.VerifyMissingSources(
456
- sources, self.abs_build_dir, generator_flags, self.GypPathToNinja)
457
- pch = gyp.msvs_emulation.PrecompiledHeader(
458
- self.msvs_settings, config_name, self.GypPathToNinja,
459
- self.GypPathToUniqueOutput, self.obj_ext)
460
- else:
461
- pch = gyp.xcode_emulation.MacPrefixHeader(
462
- self.xcode_settings, self.GypPathToNinja,
463
- lambda path, lang: self.GypPathToUniqueOutput(path + '-' + lang))
464
- link_deps = self.WriteSources(
465
- self.ninja, config_name, config, sources, compile_depends_stamp, pch,
466
- spec)
467
- # Some actions/rules output 'sources' that are already object files.
468
- obj_outputs = [f for f in sources if f.endswith(self.obj_ext)]
469
- if obj_outputs:
470
- if self.flavor != 'mac' or len(self.archs) == 1:
471
- link_deps += [self.GypPathToNinja(o) for o in obj_outputs]
472
- else:
473
- print "Warning: Actions/rules writing object files don't work with " \
474
- "multiarch targets, dropping. (target %s)" % spec['target_name']
475
-
476
-
477
- if self.flavor == 'win' and self.target.type == 'static_library':
478
- self.target.component_objs = link_deps
479
-
480
- # Write out a link step, if needed.
481
- output = None
482
- is_empty_bundle = not link_deps and not mac_bundle_depends
483
- if link_deps or self.target.actions_stamp or actions_depends:
484
- output = self.WriteTarget(spec, config_name, config, link_deps,
485
- self.target.actions_stamp or actions_depends)
486
- if self.is_mac_bundle:
487
- mac_bundle_depends.append(output)
488
-
489
- # Bundle all of the above together, if needed.
490
- if self.is_mac_bundle:
491
- output = self.WriteMacBundle(spec, mac_bundle_depends, is_empty_bundle)
492
-
493
- if not output:
494
- return None
495
-
496
- assert self.target.FinalOutput(), output
497
- return self.target
498
-
499
- def _WinIdlRule(self, source, prebuild, outputs):
500
- """Handle the implicit VS .idl rule for one source file. Fills |outputs|
501
- with files that are generated."""
502
- outdir, output, vars, flags = self.msvs_settings.GetIdlBuildData(
503
- source, self.config_name)
504
- outdir = self.GypPathToNinja(outdir)
505
- def fix_path(path, rel=None):
506
- path = os.path.join(outdir, path)
507
- dirname, basename = os.path.split(source)
508
- root, ext = os.path.splitext(basename)
509
- path = self.ExpandRuleVariables(
510
- path, root, dirname, source, ext, basename)
511
- if rel:
512
- path = os.path.relpath(path, rel)
513
- return path
514
- vars = [(name, fix_path(value, outdir)) for name, value in vars]
515
- output = [fix_path(p) for p in output]
516
- vars.append(('outdir', outdir))
517
- vars.append(('idlflags', flags))
518
- input = self.GypPathToNinja(source)
519
- self.ninja.build(output, 'idl', input,
520
- variables=vars, order_only=prebuild)
521
- outputs.extend(output)
522
-
523
- def WriteWinIdlFiles(self, spec, prebuild):
524
- """Writes rules to match MSVS's implicit idl handling."""
525
- assert self.flavor == 'win'
526
- if self.msvs_settings.HasExplicitIdlRules(spec):
527
- return []
528
- outputs = []
529
- for source in filter(lambda x: x.endswith('.idl'), spec['sources']):
530
- self._WinIdlRule(source, prebuild, outputs)
531
- return outputs
532
-
533
- def WriteActionsRulesCopies(self, spec, extra_sources, prebuild,
534
- mac_bundle_depends):
535
- """Write out the Actions, Rules, and Copies steps. Return a path
536
- representing the outputs of these steps."""
537
- outputs = []
538
- if self.is_mac_bundle:
539
- mac_bundle_resources = spec.get('mac_bundle_resources', [])[:]
540
- else:
541
- mac_bundle_resources = []
542
- extra_mac_bundle_resources = []
543
-
544
- if 'actions' in spec:
545
- outputs += self.WriteActions(spec['actions'], extra_sources, prebuild,
546
- extra_mac_bundle_resources)
547
- if 'rules' in spec:
548
- outputs += self.WriteRules(spec['rules'], extra_sources, prebuild,
549
- mac_bundle_resources,
550
- extra_mac_bundle_resources)
551
- if 'copies' in spec:
552
- outputs += self.WriteCopies(spec['copies'], prebuild, mac_bundle_depends)
553
-
554
- if 'sources' in spec and self.flavor == 'win':
555
- outputs += self.WriteWinIdlFiles(spec, prebuild)
556
-
557
- stamp = self.WriteCollapsedDependencies('actions_rules_copies', outputs)
558
-
559
- if self.is_mac_bundle:
560
- self.WriteMacBundleResources(
561
- extra_mac_bundle_resources + mac_bundle_resources, mac_bundle_depends)
562
- self.WriteMacInfoPlist(mac_bundle_depends)
563
-
564
- return stamp
565
-
566
- def GenerateDescription(self, verb, message, fallback):
567
- """Generate and return a description of a build step.
568
-
569
- |verb| is the short summary, e.g. ACTION or RULE.
570
- |message| is a hand-written description, or None if not available.
571
- |fallback| is the gyp-level name of the step, usable as a fallback.
572
- """
573
- if self.toolset != 'target':
574
- verb += '(%s)' % self.toolset
575
- if message:
576
- return '%s %s' % (verb, self.ExpandSpecial(message))
577
- else:
578
- return '%s %s: %s' % (verb, self.name, fallback)
579
-
580
- def WriteActions(self, actions, extra_sources, prebuild,
581
- extra_mac_bundle_resources):
582
- # Actions cd into the base directory.
583
- env = self.GetSortedXcodeEnv()
584
- if self.flavor == 'win':
585
- env = self.msvs_settings.GetVSMacroEnv(
586
- '$!PRODUCT_DIR', config=self.config_name)
587
- all_outputs = []
588
- for action in actions:
589
- # First write out a rule for the action.
590
- name = '%s_%s' % (action['action_name'],
591
- hashlib.md5(self.qualified_target).hexdigest())
592
- description = self.GenerateDescription('ACTION',
593
- action.get('message', None),
594
- name)
595
- is_cygwin = (self.msvs_settings.IsRuleRunUnderCygwin(action)
596
- if self.flavor == 'win' else False)
597
- args = action['action']
598
- rule_name, _ = self.WriteNewNinjaRule(name, args, description,
599
- is_cygwin, env=env)
600
-
601
- inputs = [self.GypPathToNinja(i, env) for i in action['inputs']]
602
- if int(action.get('process_outputs_as_sources', False)):
603
- extra_sources += action['outputs']
604
- if int(action.get('process_outputs_as_mac_bundle_resources', False)):
605
- extra_mac_bundle_resources += action['outputs']
606
- outputs = [self.GypPathToNinja(o, env) for o in action['outputs']]
607
-
608
- # Then write out an edge using the rule.
609
- self.ninja.build(outputs, rule_name, inputs,
610
- order_only=prebuild)
611
- all_outputs += outputs
612
-
613
- self.ninja.newline()
614
-
615
- return all_outputs
616
-
617
- def WriteRules(self, rules, extra_sources, prebuild,
618
- mac_bundle_resources, extra_mac_bundle_resources):
619
- env = self.GetSortedXcodeEnv()
620
- all_outputs = []
621
- for rule in rules:
622
- # First write out a rule for the rule action.
623
- name = '%s_%s' % (rule['rule_name'],
624
- hashlib.md5(self.qualified_target).hexdigest())
625
- # Skip a rule with no action and no inputs.
626
- if 'action' not in rule and not rule.get('rule_sources', []):
627
- continue
628
- args = rule['action']
629
- description = self.GenerateDescription(
630
- 'RULE',
631
- rule.get('message', None),
632
- ('%s ' + generator_default_variables['RULE_INPUT_PATH']) % name)
633
- is_cygwin = (self.msvs_settings.IsRuleRunUnderCygwin(rule)
634
- if self.flavor == 'win' else False)
635
- rule_name, args = self.WriteNewNinjaRule(
636
- name, args, description, is_cygwin, env=env)
637
-
638
- # TODO: if the command references the outputs directly, we should
639
- # simplify it to just use $out.
640
-
641
- # Rules can potentially make use of some special variables which
642
- # must vary per source file.
643
- # Compute the list of variables we'll need to provide.
644
- special_locals = ('source', 'root', 'dirname', 'ext', 'name')
645
- needed_variables = set(['source'])
646
- for argument in args:
647
- for var in special_locals:
648
- if ('${%s}' % var) in argument:
649
- needed_variables.add(var)
650
-
651
- def cygwin_munge(path):
652
- if is_cygwin:
653
- return path.replace('\\', '/')
654
- return path
655
-
656
- # For each source file, write an edge that generates all the outputs.
657
- for source in rule.get('rule_sources', []):
658
- source = os.path.normpath(source)
659
- dirname, basename = os.path.split(source)
660
- root, ext = os.path.splitext(basename)
661
-
662
- # Gather the list of inputs and outputs, expanding $vars if possible.
663
- outputs = [self.ExpandRuleVariables(o, root, dirname,
664
- source, ext, basename)
665
- for o in rule['outputs']]
666
- inputs = [self.ExpandRuleVariables(i, root, dirname,
667
- source, ext, basename)
668
- for i in rule.get('inputs', [])]
669
-
670
- if int(rule.get('process_outputs_as_sources', False)):
671
- extra_sources += outputs
672
-
673
- was_mac_bundle_resource = source in mac_bundle_resources
674
- if was_mac_bundle_resource or \
675
- int(rule.get('process_outputs_as_mac_bundle_resources', False)):
676
- extra_mac_bundle_resources += outputs
677
- # Note: This is n_resources * n_outputs_in_rule. Put to-be-removed
678
- # items in a set and remove them all in a single pass if this becomes
679
- # a performance issue.
680
- if was_mac_bundle_resource:
681
- mac_bundle_resources.remove(source)
682
-
683
- extra_bindings = []
684
- for var in needed_variables:
685
- if var == 'root':
686
- extra_bindings.append(('root', cygwin_munge(root)))
687
- elif var == 'dirname':
688
- # '$dirname' is a parameter to the rule action, which means
689
- # it shouldn't be converted to a Ninja path. But we don't
690
- # want $!PRODUCT_DIR in there either.
691
- dirname_expanded = self.ExpandSpecial(dirname, self.base_to_build)
692
- extra_bindings.append(('dirname', cygwin_munge(dirname_expanded)))
693
- elif var == 'source':
694
- # '$source' is a parameter to the rule action, which means
695
- # it shouldn't be converted to a Ninja path. But we don't
696
- # want $!PRODUCT_DIR in there either.
697
- source_expanded = self.ExpandSpecial(source, self.base_to_build)
698
- extra_bindings.append(('source', cygwin_munge(source_expanded)))
699
- elif var == 'ext':
700
- extra_bindings.append(('ext', ext))
701
- elif var == 'name':
702
- extra_bindings.append(('name', cygwin_munge(basename)))
703
- else:
704
- assert var == None, repr(var)
705
-
706
- inputs = [self.GypPathToNinja(i, env) for i in inputs]
707
- outputs = [self.GypPathToNinja(o, env) for o in outputs]
708
- extra_bindings.append(('unique_name',
709
- hashlib.md5(outputs[0]).hexdigest()))
710
- self.ninja.build(outputs, rule_name, self.GypPathToNinja(source),
711
- implicit=inputs,
712
- order_only=prebuild,
713
- variables=extra_bindings)
714
-
715
- all_outputs.extend(outputs)
716
-
717
- return all_outputs
718
-
719
- def WriteCopies(self, copies, prebuild, mac_bundle_depends):
720
- outputs = []
721
- env = self.GetSortedXcodeEnv()
722
- for copy in copies:
723
- for path in copy['files']:
724
- # Normalize the path so trailing slashes don't confuse us.
725
- path = os.path.normpath(path)
726
- basename = os.path.split(path)[1]
727
- src = self.GypPathToNinja(path, env)
728
- dst = self.GypPathToNinja(os.path.join(copy['destination'], basename),
729
- env)
730
- outputs += self.ninja.build(dst, 'copy', src, order_only=prebuild)
731
- if self.is_mac_bundle:
732
- # gyp has mac_bundle_resources to copy things into a bundle's
733
- # Resources folder, but there's no built-in way to copy files to other
734
- # places in the bundle. Hence, some targets use copies for this. Check
735
- # if this file is copied into the current bundle, and if so add it to
736
- # the bundle depends so that dependent targets get rebuilt if the copy
737
- # input changes.
738
- if dst.startswith(self.xcode_settings.GetBundleContentsFolderPath()):
739
- mac_bundle_depends.append(dst)
740
-
741
- return outputs
742
-
743
- def WriteMacBundleResources(self, resources, bundle_depends):
744
- """Writes ninja edges for 'mac_bundle_resources'."""
745
- for output, res in gyp.xcode_emulation.GetMacBundleResources(
746
- generator_default_variables['PRODUCT_DIR'],
747
- self.xcode_settings, map(self.GypPathToNinja, resources)):
748
- output = self.ExpandSpecial(output)
749
- self.ninja.build(output, 'mac_tool', res,
750
- variables=[('mactool_cmd', 'copy-bundle-resource')])
751
- bundle_depends.append(output)
752
-
753
- def WriteMacInfoPlist(self, bundle_depends):
754
- """Write build rules for bundle Info.plist files."""
755
- info_plist, out, defines, extra_env = gyp.xcode_emulation.GetMacInfoPlist(
756
- generator_default_variables['PRODUCT_DIR'],
757
- self.xcode_settings, self.GypPathToNinja)
758
- if not info_plist:
759
- return
760
- out = self.ExpandSpecial(out)
761
- if defines:
762
- # Create an intermediate file to store preprocessed results.
763
- intermediate_plist = self.GypPathToUniqueOutput(
764
- os.path.basename(info_plist))
765
- defines = ' '.join([Define(d, self.flavor) for d in defines])
766
- info_plist = self.ninja.build(
767
- intermediate_plist, 'preprocess_infoplist', info_plist,
768
- variables=[('defines',defines)])
769
-
770
- env = self.GetSortedXcodeEnv(additional_settings=extra_env)
771
- env = self.ComputeExportEnvString(env)
772
-
773
- keys = self.xcode_settings.GetExtraPlistItems(self.config_name)
774
- keys = QuoteShellArgument(json.dumps(keys), self.flavor)
775
- self.ninja.build(out, 'copy_infoplist', info_plist,
776
- variables=[('env', env), ('keys', keys)])
777
- bundle_depends.append(out)
778
-
779
- def WriteSources(self, ninja_file, config_name, config, sources, predepends,
780
- precompiled_header, spec):
781
- """Write build rules to compile all of |sources|."""
782
- if self.toolset == 'host':
783
- self.ninja.variable('ar', '$ar_host')
784
- self.ninja.variable('cc', '$cc_host')
785
- self.ninja.variable('cxx', '$cxx_host')
786
- self.ninja.variable('ld', '$ld_host')
787
- self.ninja.variable('ldxx', '$ldxx_host')
788
-
789
- if self.flavor != 'mac' or len(self.archs) == 1:
790
- return self.WriteSourcesForArch(
791
- self.ninja, config_name, config, sources, predepends,
792
- precompiled_header, spec)
793
- else:
794
- return dict((arch, self.WriteSourcesForArch(
795
- self.arch_subninjas[arch], config_name, config, sources, predepends,
796
- precompiled_header, spec, arch=arch))
797
- for arch in self.archs)
798
-
799
- def WriteSourcesForArch(self, ninja_file, config_name, config, sources,
800
- predepends, precompiled_header, spec, arch=None):
801
- """Write build rules to compile all of |sources|."""
802
-
803
- extra_defines = []
804
- if self.flavor == 'mac':
805
- cflags = self.xcode_settings.GetCflags(config_name, arch=arch)
806
- cflags_c = self.xcode_settings.GetCflagsC(config_name)
807
- cflags_cc = self.xcode_settings.GetCflagsCC(config_name)
808
- cflags_objc = ['$cflags_c'] + \
809
- self.xcode_settings.GetCflagsObjC(config_name)
810
- cflags_objcc = ['$cflags_cc'] + \
811
- self.xcode_settings.GetCflagsObjCC(config_name)
812
- elif self.flavor == 'win':
813
- cflags = self.msvs_settings.GetCflags(config_name)
814
- cflags_c = self.msvs_settings.GetCflagsC(config_name)
815
- cflags_cc = self.msvs_settings.GetCflagsCC(config_name)
816
- extra_defines = self.msvs_settings.GetComputedDefines(config_name)
817
- pdbpath = self.msvs_settings.GetCompilerPdbName(
818
- config_name, self.ExpandSpecial)
819
- if not pdbpath:
820
- obj = 'obj'
821
- if self.toolset != 'target':
822
- obj += '.' + self.toolset
823
- pdbpath = os.path.normpath(os.path.join(obj, self.base_dir,
824
- self.name + '.pdb'))
825
- self.WriteVariableList(ninja_file, 'pdbname', [pdbpath])
826
- self.WriteVariableList(ninja_file, 'pchprefix', [self.name])
827
- else:
828
- cflags = config.get('cflags', [])
829
- cflags_c = config.get('cflags_c', [])
830
- cflags_cc = config.get('cflags_cc', [])
831
-
832
- # Respect environment variables related to build, but target-specific
833
- # flags can still override them.
834
- if self.toolset == 'target':
835
- cflags_c = (os.environ.get('CPPFLAGS', '').split() +
836
- os.environ.get('CFLAGS', '').split() + cflags_c)
837
- cflags_cc = (os.environ.get('CPPFLAGS', '').split() +
838
- os.environ.get('CXXFLAGS', '').split() + cflags_cc)
839
-
840
- defines = config.get('defines', []) + extra_defines
841
- self.WriteVariableList(ninja_file, 'defines',
842
- [Define(d, self.flavor) for d in defines])
843
- if self.flavor == 'win':
844
- self.WriteVariableList(ninja_file, 'rcflags',
845
- [QuoteShellArgument(self.ExpandSpecial(f), self.flavor)
846
- for f in self.msvs_settings.GetRcflags(config_name,
847
- self.GypPathToNinja)])
848
-
849
- include_dirs = config.get('include_dirs', [])
850
- env = self.GetSortedXcodeEnv()
851
- if self.flavor == 'win':
852
- env = self.msvs_settings.GetVSMacroEnv('$!PRODUCT_DIR',
853
- config=config_name)
854
- include_dirs = self.msvs_settings.AdjustIncludeDirs(include_dirs,
855
- config_name)
856
- self.WriteVariableList(ninja_file, 'includes',
857
- [QuoteShellArgument('-I' + self.GypPathToNinja(i, env), self.flavor)
858
- for i in include_dirs])
859
-
860
- pch_commands = precompiled_header.GetPchBuildCommands(arch)
861
- if self.flavor == 'mac':
862
- # Most targets use no precompiled headers, so only write these if needed.
863
- for ext, var in [('c', 'cflags_pch_c'), ('cc', 'cflags_pch_cc'),
864
- ('m', 'cflags_pch_objc'), ('mm', 'cflags_pch_objcc')]:
865
- include = precompiled_header.GetInclude(ext, arch)
866
- if include: ninja_file.variable(var, include)
867
-
868
- self.WriteVariableList(ninja_file, 'cflags',
869
- map(self.ExpandSpecial, cflags))
870
- self.WriteVariableList(ninja_file, 'cflags_c',
871
- map(self.ExpandSpecial, cflags_c))
872
- self.WriteVariableList(ninja_file, 'cflags_cc',
873
- map(self.ExpandSpecial, cflags_cc))
874
- if self.flavor == 'mac':
875
- self.WriteVariableList(ninja_file, 'cflags_objc',
876
- map(self.ExpandSpecial, cflags_objc))
877
- self.WriteVariableList(ninja_file, 'cflags_objcc',
878
- map(self.ExpandSpecial, cflags_objcc))
879
- ninja_file.newline()
880
- outputs = []
881
- has_rc_source = False
882
- for source in sources:
883
- filename, ext = os.path.splitext(source)
884
- ext = ext[1:]
885
- obj_ext = self.obj_ext
886
- if ext in ('cc', 'cpp', 'cxx'):
887
- command = 'cxx'
888
- self.uses_cpp = True
889
- elif ext == 'c' or (ext == 'S' and self.flavor != 'win'):
890
- command = 'cc'
891
- elif ext == 's' and self.flavor != 'win': # Doesn't generate .o.d files.
892
- command = 'cc_s'
893
- elif (self.flavor == 'win' and ext == 'asm' and
894
- self.msvs_settings.GetArch(config_name) == 'x86' and
895
- not self.msvs_settings.HasExplicitAsmRules(spec)):
896
- # Asm files only get auto assembled for x86 (not x64).
897
- command = 'asm'
898
- # Add the _asm suffix as msvs is capable of handling .cc and
899
- # .asm files of the same name without collision.
900
- obj_ext = '_asm.obj'
901
- elif self.flavor == 'mac' and ext == 'm':
902
- command = 'objc'
903
- elif self.flavor == 'mac' and ext == 'mm':
904
- command = 'objcxx'
905
- self.uses_cpp = True
906
- elif self.flavor == 'win' and ext == 'rc':
907
- command = 'rc'
908
- obj_ext = '.res'
909
- has_rc_source = True
910
- else:
911
- # Ignore unhandled extensions.
912
- continue
913
- input = self.GypPathToNinja(source)
914
- output = self.GypPathToUniqueOutput(filename + obj_ext)
915
- if arch is not None:
916
- output = AddArch(output, arch)
917
- implicit = precompiled_header.GetObjDependencies([input], [output], arch)
918
- variables = []
919
- if self.flavor == 'win':
920
- variables, output, implicit = precompiled_header.GetFlagsModifications(
921
- input, output, implicit, command, cflags_c, cflags_cc,
922
- self.ExpandSpecial)
923
- ninja_file.build(output, command, input,
924
- implicit=[gch for _, _, gch in implicit],
925
- order_only=predepends, variables=variables)
926
- outputs.append(output)
927
-
928
- if has_rc_source:
929
- resource_include_dirs = config.get('resource_include_dirs', include_dirs)
930
- self.WriteVariableList(ninja_file, 'resource_includes',
931
- [QuoteShellArgument('-I' + self.GypPathToNinja(i, env), self.flavor)
932
- for i in resource_include_dirs])
933
-
934
- self.WritePchTargets(ninja_file, pch_commands)
935
-
936
- ninja_file.newline()
937
- return outputs
938
-
939
- def WritePchTargets(self, ninja_file, pch_commands):
940
- """Writes ninja rules to compile prefix headers."""
941
- if not pch_commands:
942
- return
943
-
944
- for gch, lang_flag, lang, input in pch_commands:
945
- var_name = {
946
- 'c': 'cflags_pch_c',
947
- 'cc': 'cflags_pch_cc',
948
- 'm': 'cflags_pch_objc',
949
- 'mm': 'cflags_pch_objcc',
950
- }[lang]
951
-
952
- map = { 'c': 'cc', 'cc': 'cxx', 'm': 'objc', 'mm': 'objcxx', }
953
- cmd = map.get(lang)
954
- ninja_file.build(gch, cmd, input, variables=[(var_name, lang_flag)])
955
-
956
- def WriteLink(self, spec, config_name, config, link_deps):
957
- """Write out a link step. Fills out target.binary. """
958
- if self.flavor != 'mac' or len(self.archs) == 1:
959
- return self.WriteLinkForArch(
960
- self.ninja, spec, config_name, config, link_deps)
961
- else:
962
- output = self.ComputeOutput(spec)
963
- inputs = [self.WriteLinkForArch(self.arch_subninjas[arch], spec,
964
- config_name, config, link_deps[arch],
965
- arch=arch)
966
- for arch in self.archs]
967
- extra_bindings = []
968
- if not self.is_mac_bundle:
969
- self.AppendPostbuildVariable(extra_bindings, spec, output, output)
970
- self.ninja.build(output, 'lipo', inputs, variables=extra_bindings)
971
- return output
972
-
973
- def WriteLinkForArch(self, ninja_file, spec, config_name, config,
974
- link_deps, arch=None):
975
- """Write out a link step. Fills out target.binary. """
976
- command = {
977
- 'executable': 'link',
978
- 'loadable_module': 'solink_module',
979
- 'shared_library': 'solink',
980
- }[spec['type']]
981
- command_suffix = ''
982
-
983
- implicit_deps = set()
984
- solibs = set()
985
-
986
- if 'dependencies' in spec:
987
- # Two kinds of dependencies:
988
- # - Linkable dependencies (like a .a or a .so): add them to the link line.
989
- # - Non-linkable dependencies (like a rule that generates a file
990
- # and writes a stamp file): add them to implicit_deps
991
- extra_link_deps = set()
992
- for dep in spec['dependencies']:
993
- target = self.target_outputs.get(dep)
994
- if not target:
995
- continue
996
- linkable = target.Linkable()
997
- if linkable:
998
- new_deps = []
999
- if (self.flavor == 'win' and
1000
- target.component_objs and
1001
- self.msvs_settings.IsUseLibraryDependencyInputs(config_name)):
1002
- new_deps = target.component_objs
1003
- elif self.flavor == 'win' and target.import_lib:
1004
- new_deps = [target.import_lib]
1005
- elif target.UsesToc(self.flavor):
1006
- solibs.add(target.binary)
1007
- implicit_deps.add(target.binary + '.TOC')
1008
- else:
1009
- new_deps = [target.binary]
1010
- for new_dep in new_deps:
1011
- if new_dep not in extra_link_deps:
1012
- extra_link_deps.add(new_dep)
1013
- link_deps.append(new_dep)
1014
-
1015
- final_output = target.FinalOutput()
1016
- if not linkable or final_output != target.binary:
1017
- implicit_deps.add(final_output)
1018
-
1019
- extra_bindings = []
1020
- if self.uses_cpp and self.flavor != 'win':
1021
- extra_bindings.append(('ld', '$ldxx'))
1022
-
1023
- output = self.ComputeOutput(spec, arch)
1024
- if arch is None and not self.is_mac_bundle:
1025
- self.AppendPostbuildVariable(extra_bindings, spec, output, output)
1026
-
1027
- is_executable = spec['type'] == 'executable'
1028
- # The ldflags config key is not used on mac or win. On those platforms
1029
- # linker flags are set via xcode_settings and msvs_settings, respectively.
1030
- env_ldflags = os.environ.get('LDFLAGS', '').split()
1031
- if self.flavor == 'mac':
1032
- ldflags = self.xcode_settings.GetLdflags(config_name,
1033
- self.ExpandSpecial(generator_default_variables['PRODUCT_DIR']),
1034
- self.GypPathToNinja, arch)
1035
- ldflags = env_ldflags + ldflags
1036
- elif self.flavor == 'win':
1037
- manifest_name = self.GypPathToUniqueOutput(
1038
- self.ComputeOutputFileName(spec))
1039
- ldflags, manifest_files = self.msvs_settings.GetLdflags(config_name,
1040
- self.GypPathToNinja, self.ExpandSpecial, manifest_name, is_executable)
1041
- ldflags = env_ldflags + ldflags
1042
- self.WriteVariableList(ninja_file, 'manifests', manifest_files)
1043
- command_suffix = _GetWinLinkRuleNameSuffix(
1044
- self.msvs_settings.IsEmbedManifest(config_name),
1045
- self.msvs_settings.IsLinkIncremental(config_name))
1046
- def_file = self.msvs_settings.GetDefFile(self.GypPathToNinja)
1047
- if def_file:
1048
- implicit_deps.add(def_file)
1049
- else:
1050
- # Respect environment variables related to build, but target-specific
1051
- # flags can still override them.
1052
- ldflags = env_ldflags + config.get('ldflags', [])
1053
- if is_executable and len(solibs):
1054
- rpath = 'lib/'
1055
- if self.toolset != 'target':
1056
- rpath += self.toolset
1057
- ldflags.append('-Wl,-rpath=\$$ORIGIN/%s' % rpath)
1058
- ldflags.append('-Wl,-rpath-link=%s' % rpath)
1059
- self.WriteVariableList(ninja_file, 'ldflags',
1060
- gyp.common.uniquer(map(self.ExpandSpecial, ldflags)))
1061
-
1062
- library_dirs = config.get('library_dirs', [])
1063
- if self.flavor == 'win':
1064
- library_dirs = [self.msvs_settings.ConvertVSMacros(l, config_name)
1065
- for l in library_dirs]
1066
- library_dirs = ['/LIBPATH:' + QuoteShellArgument(self.GypPathToNinja(l),
1067
- self.flavor)
1068
- for l in library_dirs]
1069
- else:
1070
- library_dirs = [QuoteShellArgument('-L' + self.GypPathToNinja(l),
1071
- self.flavor)
1072
- for l in library_dirs]
1073
-
1074
- libraries = gyp.common.uniquer(map(self.ExpandSpecial,
1075
- spec.get('libraries', [])))
1076
- if self.flavor == 'mac':
1077
- libraries = self.xcode_settings.AdjustLibraries(libraries, config_name)
1078
- elif self.flavor == 'win':
1079
- libraries = self.msvs_settings.AdjustLibraries(libraries)
1080
-
1081
- self.WriteVariableList(ninja_file, 'libs', library_dirs + libraries)
1082
-
1083
- linked_binary = output
1084
-
1085
- if command in ('solink', 'solink_module'):
1086
- extra_bindings.append(('soname', os.path.split(output)[1]))
1087
- extra_bindings.append(('lib',
1088
- gyp.common.EncodePOSIXShellArgument(output)))
1089
- if self.flavor == 'win':
1090
- extra_bindings.append(('dll', output))
1091
- if '/NOENTRY' not in ldflags:
1092
- self.target.import_lib = output + '.lib'
1093
- extra_bindings.append(('implibflag',
1094
- '/IMPLIB:%s' % self.target.import_lib))
1095
- output = [output, self.target.import_lib]
1096
- elif not self.is_mac_bundle:
1097
- output = [output, output + '.TOC']
1098
- else:
1099
- command = command + '_notoc'
1100
-
1101
- if len(solibs):
1102
- extra_bindings.append(('solibs', gyp.common.EncodePOSIXShellList(solibs)))
1103
-
1104
- ninja_file.build(output, command + command_suffix, link_deps,
1105
- implicit=list(implicit_deps),
1106
- variables=extra_bindings)
1107
- return linked_binary
1108
-
1109
- def WriteTarget(self, spec, config_name, config, link_deps, compile_deps):
1110
- extra_link_deps = any(self.target_outputs.get(dep).Linkable()
1111
- for dep in spec.get('dependencies', [])
1112
- if dep in self.target_outputs)
1113
- if spec['type'] == 'none' or (not link_deps and not extra_link_deps):
1114
- # TODO(evan): don't call this function for 'none' target types, as
1115
- # it doesn't do anything, and we fake out a 'binary' with a stamp file.
1116
- self.target.binary = compile_deps
1117
- self.target.type = 'none'
1118
- elif spec['type'] == 'static_library':
1119
- self.target.binary = self.ComputeOutput(spec)
1120
- if (self.flavor not in ('mac', 'openbsd', 'win') and not
1121
- self.is_standalone_static_library):
1122
- self.ninja.build(self.target.binary, 'alink_thin', link_deps,
1123
- order_only=compile_deps)
1124
- else:
1125
- variables = []
1126
- if self.xcode_settings:
1127
- libtool_flags = self.xcode_settings.GetLibtoolflags(config_name)
1128
- if libtool_flags:
1129
- variables.append(('libtool_flags', libtool_flags))
1130
- if self.msvs_settings:
1131
- libflags = self.msvs_settings.GetLibFlags(config_name,
1132
- self.GypPathToNinja)
1133
- variables.append(('libflags', libflags))
1134
-
1135
- if self.flavor != 'mac' or len(self.archs) == 1:
1136
- self.AppendPostbuildVariable(variables, spec,
1137
- self.target.binary, self.target.binary)
1138
- self.ninja.build(self.target.binary, 'alink', link_deps,
1139
- order_only=compile_deps, variables=variables)
1140
- else:
1141
- inputs = []
1142
- for arch in self.archs:
1143
- output = self.ComputeOutput(spec, arch)
1144
- self.arch_subninjas[arch].build(output, 'alink', link_deps[arch],
1145
- order_only=compile_deps,
1146
- variables=variables)
1147
- inputs.append(output)
1148
- # TODO: It's not clear if libtool_flags should be passed to the alink
1149
- # call that combines single-arch .a files into a fat .a file.
1150
- self.AppendPostbuildVariable(variables, spec,
1151
- self.target.binary, self.target.binary)
1152
- self.ninja.build(self.target.binary, 'alink', inputs,
1153
- # FIXME: test proving order_only=compile_deps isn't
1154
- # needed.
1155
- variables=variables)
1156
- else:
1157
- self.target.binary = self.WriteLink(spec, config_name, config, link_deps)
1158
- return self.target.binary
1159
-
1160
- def WriteMacBundle(self, spec, mac_bundle_depends, is_empty):
1161
- assert self.is_mac_bundle
1162
- package_framework = spec['type'] in ('shared_library', 'loadable_module')
1163
- output = self.ComputeMacBundleOutput()
1164
- if is_empty:
1165
- output += '.stamp'
1166
- variables = []
1167
- self.AppendPostbuildVariable(variables, spec, output, self.target.binary,
1168
- is_command_start=not package_framework)
1169
- if package_framework and not is_empty:
1170
- variables.append(('version', self.xcode_settings.GetFrameworkVersion()))
1171
- self.ninja.build(output, 'package_framework', mac_bundle_depends,
1172
- variables=variables)
1173
- else:
1174
- self.ninja.build(output, 'stamp', mac_bundle_depends,
1175
- variables=variables)
1176
- self.target.bundle = output
1177
- return output
1178
-
1179
- def GetSortedXcodeEnv(self, additional_settings=None):
1180
- """Returns the variables Xcode would set for build steps."""
1181
- assert self.abs_build_dir
1182
- abs_build_dir = self.abs_build_dir
1183
- return gyp.xcode_emulation.GetSortedXcodeEnv(
1184
- self.xcode_settings, abs_build_dir,
1185
- os.path.join(abs_build_dir, self.build_to_base), self.config_name,
1186
- additional_settings)
1187
-
1188
- def GetSortedXcodePostbuildEnv(self):
1189
- """Returns the variables Xcode would set for postbuild steps."""
1190
- postbuild_settings = {}
1191
- # CHROMIUM_STRIP_SAVE_FILE is a chromium-specific hack.
1192
- # TODO(thakis): It would be nice to have some general mechanism instead.
1193
- strip_save_file = self.xcode_settings.GetPerTargetSetting(
1194
- 'CHROMIUM_STRIP_SAVE_FILE')
1195
- if strip_save_file:
1196
- postbuild_settings['CHROMIUM_STRIP_SAVE_FILE'] = strip_save_file
1197
- return self.GetSortedXcodeEnv(additional_settings=postbuild_settings)
1198
-
1199
- def AppendPostbuildVariable(self, variables, spec, output, binary,
1200
- is_command_start=False):
1201
- """Adds a 'postbuild' variable if there is a postbuild for |output|."""
1202
- postbuild = self.GetPostbuildCommand(spec, output, binary, is_command_start)
1203
- if postbuild:
1204
- variables.append(('postbuilds', postbuild))
1205
-
1206
- def GetPostbuildCommand(self, spec, output, output_binary, is_command_start):
1207
- """Returns a shell command that runs all the postbuilds, and removes
1208
- |output| if any of them fails. If |is_command_start| is False, then the
1209
- returned string will start with ' && '."""
1210
- if not self.xcode_settings or spec['type'] == 'none' or not output:
1211
- return ''
1212
- output = QuoteShellArgument(output, self.flavor)
1213
- postbuilds = gyp.xcode_emulation.GetSpecPostbuildCommands(spec, quiet=True)
1214
- if output_binary is not None:
1215
- postbuilds = self.xcode_settings.AddImplicitPostbuilds(
1216
- self.config_name,
1217
- os.path.normpath(os.path.join(self.base_to_build, output)),
1218
- QuoteShellArgument(
1219
- os.path.normpath(os.path.join(self.base_to_build, output_binary)),
1220
- self.flavor),
1221
- postbuilds, quiet=True)
1222
-
1223
- if not postbuilds:
1224
- return ''
1225
- # Postbuilds expect to be run in the gyp file's directory, so insert an
1226
- # implicit postbuild to cd to there.
1227
- postbuilds.insert(0, gyp.common.EncodePOSIXShellList(
1228
- ['cd', self.build_to_base]))
1229
- env = self.ComputeExportEnvString(self.GetSortedXcodePostbuildEnv())
1230
- # G will be non-null if any postbuild fails. Run all postbuilds in a
1231
- # subshell.
1232
- commands = env + ' (' + \
1233
- ' && '.join([ninja_syntax.escape(command) for command in postbuilds])
1234
- command_string = (commands + '); G=$$?; '
1235
- # Remove the final output if any postbuild failed.
1236
- '((exit $$G) || rm -rf %s) ' % output + '&& exit $$G)')
1237
- if is_command_start:
1238
- return '(' + command_string + ' && '
1239
- else:
1240
- return '$ && (' + command_string
1241
-
1242
- def ComputeExportEnvString(self, env):
1243
- """Given an environment, returns a string looking like
1244
- 'export FOO=foo; export BAR="${FOO} bar;'
1245
- that exports |env| to the shell."""
1246
- export_str = []
1247
- for k, v in env:
1248
- export_str.append('export %s=%s;' %
1249
- (k, ninja_syntax.escape(gyp.common.EncodePOSIXShellArgument(v))))
1250
- return ' '.join(export_str)
1251
-
1252
- def ComputeMacBundleOutput(self):
1253
- """Return the 'output' (full output path) to a bundle output directory."""
1254
- assert self.is_mac_bundle
1255
- path = generator_default_variables['PRODUCT_DIR']
1256
- return self.ExpandSpecial(
1257
- os.path.join(path, self.xcode_settings.GetWrapperName()))
1258
-
1259
- def ComputeOutputFileName(self, spec, type=None):
1260
- """Compute the filename of the final output for the current target."""
1261
- if not type:
1262
- type = spec['type']
1263
-
1264
- default_variables = copy.copy(generator_default_variables)
1265
- CalculateVariables(default_variables, {'flavor': self.flavor})
1266
-
1267
- # Compute filename prefix: the product prefix, or a default for
1268
- # the product type.
1269
- DEFAULT_PREFIX = {
1270
- 'loadable_module': default_variables['SHARED_LIB_PREFIX'],
1271
- 'shared_library': default_variables['SHARED_LIB_PREFIX'],
1272
- 'static_library': default_variables['STATIC_LIB_PREFIX'],
1273
- 'executable': default_variables['EXECUTABLE_PREFIX'],
1274
- }
1275
- prefix = spec.get('product_prefix', DEFAULT_PREFIX.get(type, ''))
1276
-
1277
- # Compute filename extension: the product extension, or a default
1278
- # for the product type.
1279
- DEFAULT_EXTENSION = {
1280
- 'loadable_module': default_variables['SHARED_LIB_SUFFIX'],
1281
- 'shared_library': default_variables['SHARED_LIB_SUFFIX'],
1282
- 'static_library': default_variables['STATIC_LIB_SUFFIX'],
1283
- 'executable': default_variables['EXECUTABLE_SUFFIX'],
1284
- }
1285
- extension = spec.get('product_extension')
1286
- if extension:
1287
- extension = '.' + extension
1288
- else:
1289
- extension = DEFAULT_EXTENSION.get(type, '')
1290
-
1291
- if 'product_name' in spec:
1292
- # If we were given an explicit name, use that.
1293
- target = spec['product_name']
1294
- else:
1295
- # Otherwise, derive a name from the target name.
1296
- target = spec['target_name']
1297
- if prefix == 'lib':
1298
- # Snip out an extra 'lib' from libs if appropriate.
1299
- target = StripPrefix(target, 'lib')
1300
-
1301
- if type in ('static_library', 'loadable_module', 'shared_library',
1302
- 'executable'):
1303
- return '%s%s%s' % (prefix, target, extension)
1304
- elif type == 'none':
1305
- return '%s.stamp' % target
1306
- else:
1307
- raise Exception('Unhandled output type %s' % type)
1308
-
1309
- def ComputeOutput(self, spec, arch=None):
1310
- """Compute the path for the final output of the spec."""
1311
- type = spec['type']
1312
-
1313
- if self.flavor == 'win':
1314
- override = self.msvs_settings.GetOutputName(self.config_name,
1315
- self.ExpandSpecial)
1316
- if override:
1317
- return override
1318
-
1319
- if arch is None and self.flavor == 'mac' and type in (
1320
- 'static_library', 'executable', 'shared_library', 'loadable_module'):
1321
- filename = self.xcode_settings.GetExecutablePath()
1322
- else:
1323
- filename = self.ComputeOutputFileName(spec, type)
1324
-
1325
- if arch is None and 'product_dir' in spec:
1326
- path = os.path.join(spec['product_dir'], filename)
1327
- return self.ExpandSpecial(path)
1328
-
1329
- # Some products go into the output root, libraries go into shared library
1330
- # dir, and everything else goes into the normal place.
1331
- type_in_output_root = ['executable', 'loadable_module']
1332
- if self.flavor == 'mac' and self.toolset == 'target':
1333
- type_in_output_root += ['shared_library', 'static_library']
1334
- elif self.flavor == 'win' and self.toolset == 'target':
1335
- type_in_output_root += ['shared_library']
1336
-
1337
- if arch is not None:
1338
- # Make sure partial executables don't end up in a bundle or the regular
1339
- # output directory.
1340
- archdir = 'arch'
1341
- if self.toolset != 'target':
1342
- archdir = os.path.join('arch', '%s' % self.toolset)
1343
- return os.path.join(archdir, AddArch(filename, arch))
1344
- elif type in type_in_output_root or self.is_standalone_static_library:
1345
- return filename
1346
- elif type == 'shared_library':
1347
- libdir = 'lib'
1348
- if self.toolset != 'target':
1349
- libdir = os.path.join('lib', '%s' % self.toolset)
1350
- return os.path.join(libdir, filename)
1351
- else:
1352
- return self.GypPathToUniqueOutput(filename, qualified=False)
1353
-
1354
- def WriteVariableList(self, ninja_file, var, values):
1355
- assert not isinstance(values, str)
1356
- if values is None:
1357
- values = []
1358
- ninja_file.variable(var, ' '.join(values))
1359
-
1360
- def WriteNewNinjaRule(self, name, args, description, is_cygwin, env):
1361
- """Write out a new ninja "rule" statement for a given command.
1362
-
1363
- Returns the name of the new rule, and a copy of |args| with variables
1364
- expanded."""
1365
-
1366
- if self.flavor == 'win':
1367
- args = [self.msvs_settings.ConvertVSMacros(
1368
- arg, self.base_to_build, config=self.config_name)
1369
- for arg in args]
1370
- description = self.msvs_settings.ConvertVSMacros(
1371
- description, config=self.config_name)
1372
- elif self.flavor == 'mac':
1373
- # |env| is an empty list on non-mac.
1374
- args = [gyp.xcode_emulation.ExpandEnvVars(arg, env) for arg in args]
1375
- description = gyp.xcode_emulation.ExpandEnvVars(description, env)
1376
-
1377
- # TODO: we shouldn't need to qualify names; we do it because
1378
- # currently the ninja rule namespace is global, but it really
1379
- # should be scoped to the subninja.
1380
- rule_name = self.name
1381
- if self.toolset == 'target':
1382
- rule_name += '.' + self.toolset
1383
- rule_name += '.' + name
1384
- rule_name = re.sub('[^a-zA-Z0-9_]', '_', rule_name)
1385
-
1386
- # Remove variable references, but not if they refer to the magic rule
1387
- # variables. This is not quite right, as it also protects these for
1388
- # actions, not just for rules where they are valid. Good enough.
1389
- protect = [ '${root}', '${dirname}', '${source}', '${ext}', '${name}' ]
1390
- protect = '(?!' + '|'.join(map(re.escape, protect)) + ')'
1391
- description = re.sub(protect + r'\$', '_', description)
1392
-
1393
- # gyp dictates that commands are run from the base directory.
1394
- # cd into the directory before running, and adjust paths in
1395
- # the arguments to point to the proper locations.
1396
- rspfile = None
1397
- rspfile_content = None
1398
- args = [self.ExpandSpecial(arg, self.base_to_build) for arg in args]
1399
- if self.flavor == 'win':
1400
- rspfile = rule_name + '.$unique_name.rsp'
1401
- # The cygwin case handles this inside the bash sub-shell.
1402
- run_in = '' if is_cygwin else ' ' + self.build_to_base
1403
- if is_cygwin:
1404
- rspfile_content = self.msvs_settings.BuildCygwinBashCommandLine(
1405
- args, self.build_to_base)
1406
- else:
1407
- rspfile_content = gyp.msvs_emulation.EncodeRspFileList(args)
1408
- command = ('%s gyp-win-tool action-wrapper $arch ' % sys.executable +
1409
- rspfile + run_in)
1410
- else:
1411
- env = self.ComputeExportEnvString(env)
1412
- command = gyp.common.EncodePOSIXShellList(args)
1413
- command = 'cd %s; ' % self.build_to_base + env + command
1414
-
1415
- # GYP rules/actions express being no-ops by not touching their outputs.
1416
- # Avoid executing downstream dependencies in this case by specifying
1417
- # restat=1 to ninja.
1418
- self.ninja.rule(rule_name, command, description, restat=True,
1419
- rspfile=rspfile, rspfile_content=rspfile_content)
1420
- self.ninja.newline()
1421
-
1422
- return rule_name, args
1423
-
1424
-
1425
- def CalculateVariables(default_variables, params):
1426
- """Calculate additional variables for use in the build (called by gyp)."""
1427
- global generator_additional_non_configuration_keys
1428
- global generator_additional_path_sections
1429
- flavor = gyp.common.GetFlavor(params)
1430
- if flavor == 'mac':
1431
- default_variables.setdefault('OS', 'mac')
1432
- default_variables.setdefault('SHARED_LIB_SUFFIX', '.dylib')
1433
- default_variables.setdefault('SHARED_LIB_DIR',
1434
- generator_default_variables['PRODUCT_DIR'])
1435
- default_variables.setdefault('LIB_DIR',
1436
- generator_default_variables['PRODUCT_DIR'])
1437
-
1438
- # Copy additional generator configuration data from Xcode, which is shared
1439
- # by the Mac Ninja generator.
1440
- import gyp.generator.xcode as xcode_generator
1441
- generator_additional_non_configuration_keys = getattr(xcode_generator,
1442
- 'generator_additional_non_configuration_keys', [])
1443
- generator_additional_path_sections = getattr(xcode_generator,
1444
- 'generator_additional_path_sections', [])
1445
- global generator_extra_sources_for_rules
1446
- generator_extra_sources_for_rules = getattr(xcode_generator,
1447
- 'generator_extra_sources_for_rules', [])
1448
- elif flavor == 'win':
1449
- default_variables.setdefault('OS', 'win')
1450
- default_variables['EXECUTABLE_SUFFIX'] = '.exe'
1451
- default_variables['STATIC_LIB_PREFIX'] = ''
1452
- default_variables['STATIC_LIB_SUFFIX'] = '.lib'
1453
- default_variables['SHARED_LIB_PREFIX'] = ''
1454
- default_variables['SHARED_LIB_SUFFIX'] = '.dll'
1455
-
1456
- # Copy additional generator configuration data from VS, which is shared
1457
- # by the Windows Ninja generator.
1458
- import gyp.generator.msvs as msvs_generator
1459
- generator_additional_non_configuration_keys = getattr(msvs_generator,
1460
- 'generator_additional_non_configuration_keys', [])
1461
- generator_additional_path_sections = getattr(msvs_generator,
1462
- 'generator_additional_path_sections', [])
1463
-
1464
- gyp.msvs_emulation.CalculateCommonVariables(default_variables, params)
1465
- else:
1466
- operating_system = flavor
1467
- if flavor == 'android':
1468
- operating_system = 'linux' # Keep this legacy behavior for now.
1469
- default_variables.setdefault('OS', operating_system)
1470
- default_variables.setdefault('SHARED_LIB_SUFFIX', '.so')
1471
- default_variables.setdefault('SHARED_LIB_DIR',
1472
- os.path.join('$!PRODUCT_DIR', 'lib'))
1473
- default_variables.setdefault('LIB_DIR',
1474
- os.path.join('$!PRODUCT_DIR', 'obj'))
1475
-
1476
- def ComputeOutputDir(params):
1477
- """Returns the path from the toplevel_dir to the build output directory."""
1478
- # generator_dir: relative path from pwd to where make puts build files.
1479
- # Makes migrating from make to ninja easier, ninja doesn't put anything here.
1480
- generator_dir = os.path.relpath(params['options'].generator_output or '.')
1481
-
1482
- # output_dir: relative path from generator_dir to the build directory.
1483
- output_dir = params.get('generator_flags', {}).get('output_dir', 'out')
1484
-
1485
- # Relative path from source root to our output files. e.g. "out"
1486
- return os.path.normpath(os.path.join(generator_dir, output_dir))
1487
-
1488
-
1489
- def CalculateGeneratorInputInfo(params):
1490
- """Called by __init__ to initialize generator values based on params."""
1491
- # E.g. "out/gypfiles"
1492
- toplevel = params['options'].toplevel_dir
1493
- qualified_out_dir = os.path.normpath(os.path.join(
1494
- toplevel, ComputeOutputDir(params), 'gypfiles'))
1495
-
1496
- global generator_filelist_paths
1497
- generator_filelist_paths = {
1498
- 'toplevel': toplevel,
1499
- 'qualified_out_dir': qualified_out_dir,
1500
- }
1501
-
1502
-
1503
- def OpenOutput(path, mode='w'):
1504
- """Open |path| for writing, creating directories if necessary."""
1505
- try:
1506
- os.makedirs(os.path.dirname(path))
1507
- except OSError:
1508
- pass
1509
- return open(path, mode)
1510
-
1511
-
1512
- def CommandWithWrapper(cmd, wrappers, prog):
1513
- wrapper = wrappers.get(cmd, '')
1514
- if wrapper:
1515
- return wrapper + ' ' + prog
1516
- return prog
1517
-
1518
-
1519
- def GetDefaultConcurrentLinks():
1520
- """Returns a best-guess for a number of concurrent links."""
1521
- if sys.platform in ('win32', 'cygwin'):
1522
- import ctypes
1523
-
1524
- class MEMORYSTATUSEX(ctypes.Structure):
1525
- _fields_ = [
1526
- ("dwLength", ctypes.c_ulong),
1527
- ("dwMemoryLoad", ctypes.c_ulong),
1528
- ("ullTotalPhys", ctypes.c_ulonglong),
1529
- ("ullAvailPhys", ctypes.c_ulonglong),
1530
- ("ullTotalPageFile", ctypes.c_ulonglong),
1531
- ("ullAvailPageFile", ctypes.c_ulonglong),
1532
- ("ullTotalVirtual", ctypes.c_ulonglong),
1533
- ("ullAvailVirtual", ctypes.c_ulonglong),
1534
- ("sullAvailExtendedVirtual", ctypes.c_ulonglong),
1535
- ]
1536
-
1537
- stat = MEMORYSTATUSEX()
1538
- stat.dwLength = ctypes.sizeof(stat)
1539
- ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat))
1540
-
1541
- mem_limit = max(1, stat.ullTotalPhys / (4 * (2 ** 30))) # total / 4GB
1542
- hard_cap = max(1, int(os.getenv('GYP_LINK_CONCURRENCY_MAX', 2**32)))
1543
- return min(mem_limit, hard_cap)
1544
- elif sys.platform.startswith('linux'):
1545
- with open("/proc/meminfo") as meminfo:
1546
- memtotal_re = re.compile(r'^MemTotal:\s*(\d*)\s*kB')
1547
- for line in meminfo:
1548
- match = memtotal_re.match(line)
1549
- if not match:
1550
- continue
1551
- # Allow 8Gb per link on Linux because Gold is quite memory hungry
1552
- return max(1, int(match.group(1)) / (8 * (2 ** 20)))
1553
- return 1
1554
- elif sys.platform == 'darwin':
1555
- try:
1556
- avail_bytes = int(subprocess.check_output(['sysctl', '-n', 'hw.memsize']))
1557
- # A static library debug build of Chromium's unit_tests takes ~2.7GB, so
1558
- # 4GB per ld process allows for some more bloat.
1559
- return max(1, avail_bytes / (4 * (2 ** 30))) # total / 4GB
1560
- except:
1561
- return 1
1562
- else:
1563
- # TODO(scottmg): Implement this for other platforms.
1564
- return 1
1565
-
1566
-
1567
- def _GetWinLinkRuleNameSuffix(embed_manifest, link_incremental):
1568
- """Returns the suffix used to select an appropriate linking rule depending on
1569
- whether the manifest embedding and/or incremental linking is enabled."""
1570
- suffix = ''
1571
- if embed_manifest:
1572
- suffix += '_embed'
1573
- if link_incremental:
1574
- suffix += '_inc'
1575
- return suffix
1576
-
1577
-
1578
- def _AddWinLinkRules(master_ninja, embed_manifest, link_incremental):
1579
- """Adds link rules for Windows platform to |master_ninja|."""
1580
- def FullLinkCommand(ldcmd, out, binary_type):
1581
- cmd = ('cmd /c %(ldcmd)s'
1582
- ' && %(python)s gyp-win-tool manifest-wrapper $arch'
1583
- ' cmd /c if exist %(out)s.manifest del %(out)s.manifest'
1584
- ' && %(python)s gyp-win-tool manifest-wrapper $arch'
1585
- ' $mt -nologo -manifest $manifests')
1586
- if embed_manifest and not link_incremental:
1587
- # Embed manifest into a binary. If incremental linking is enabled,
1588
- # embedding is postponed to the re-linking stage (see below).
1589
- cmd += ' -outputresource:%(out)s;%(resname)s'
1590
- else:
1591
- # Save manifest as an external file.
1592
- cmd += ' -out:%(out)s.manifest'
1593
- if link_incremental:
1594
- # There is no point in generating separate rule for the case when
1595
- # incremental linking is enabled, but manifest embedding is disabled.
1596
- # In that case the basic rule should be used (e.g. 'link').
1597
- # See also implementation of _GetWinLinkRuleNameSuffix().
1598
- assert embed_manifest
1599
- # Make .rc file out of manifest, compile it to .res file and re-link.
1600
- cmd += (' && %(python)s gyp-win-tool manifest-to-rc $arch'
1601
- ' %(out)s.manifest %(out)s.manifest.rc %(resname)s'
1602
- ' && %(python)s gyp-win-tool rc-wrapper $arch $rc'
1603
- ' %(out)s.manifest.rc'
1604
- ' && %(ldcmd)s %(out)s.manifest.res')
1605
- resource_name = {
1606
- 'exe': '1',
1607
- 'dll': '2',
1608
- }[binary_type]
1609
- return cmd % {'python': sys.executable,
1610
- 'out': out,
1611
- 'ldcmd': ldcmd,
1612
- 'resname': resource_name}
1613
-
1614
- rule_name_suffix = _GetWinLinkRuleNameSuffix(embed_manifest, link_incremental)
1615
- dlldesc = 'LINK%s(DLL) $dll' % rule_name_suffix.upper()
1616
- dllcmd = ('%s gyp-win-tool link-wrapper $arch '
1617
- '$ld /nologo $implibflag /DLL /OUT:$dll '
1618
- '/PDB:$dll.pdb @$dll.rsp' % sys.executable)
1619
- dllcmd = FullLinkCommand(dllcmd, '$dll', 'dll')
1620
- master_ninja.rule('solink' + rule_name_suffix,
1621
- description=dlldesc, command=dllcmd,
1622
- rspfile='$dll.rsp',
1623
- rspfile_content='$libs $in_newline $ldflags',
1624
- restat=True,
1625
- pool='link_pool')
1626
- master_ninja.rule('solink_module' + rule_name_suffix,
1627
- description=dlldesc, command=dllcmd,
1628
- rspfile='$dll.rsp',
1629
- rspfile_content='$libs $in_newline $ldflags',
1630
- restat=True,
1631
- pool='link_pool')
1632
- # Note that ldflags goes at the end so that it has the option of
1633
- # overriding default settings earlier in the command line.
1634
- exe_cmd = ('%s gyp-win-tool link-wrapper $arch '
1635
- '$ld /nologo /OUT:$out /PDB:$out.pdb @$out.rsp' %
1636
- sys.executable)
1637
- exe_cmd = FullLinkCommand(exe_cmd, '$out', 'exe')
1638
- master_ninja.rule('link' + rule_name_suffix,
1639
- description='LINK%s $out' % rule_name_suffix.upper(),
1640
- command=exe_cmd,
1641
- rspfile='$out.rsp',
1642
- rspfile_content='$in_newline $libs $ldflags',
1643
- pool='link_pool')
1644
-
1645
-
1646
- def GenerateOutputForConfig(target_list, target_dicts, data, params,
1647
- config_name):
1648
- options = params['options']
1649
- flavor = gyp.common.GetFlavor(params)
1650
- generator_flags = params.get('generator_flags', {})
1651
-
1652
- # build_dir: relative path from source root to our output files.
1653
- # e.g. "out/Debug"
1654
- build_dir = os.path.normpath(
1655
- os.path.join(ComputeOutputDir(params), config_name))
1656
-
1657
- toplevel_build = os.path.join(options.toplevel_dir, build_dir)
1658
-
1659
- master_ninja = ninja_syntax.Writer(
1660
- OpenOutput(os.path.join(toplevel_build, 'build.ninja')),
1661
- width=120)
1662
-
1663
- # Put build-time support tools in out/{config_name}.
1664
- gyp.common.CopyTool(flavor, toplevel_build)
1665
-
1666
- # Grab make settings for CC/CXX.
1667
- # The rules are
1668
- # - The priority from low to high is gcc/g++, the 'make_global_settings' in
1669
- # gyp, the environment variable.
1670
- # - If there is no 'make_global_settings' for CC.host/CXX.host or
1671
- # 'CC_host'/'CXX_host' enviroment variable, cc_host/cxx_host should be set
1672
- # to cc/cxx.
1673
- if flavor == 'win':
1674
- # Overridden by local arch choice in the use_deps case.
1675
- # Chromium's ffmpeg c99conv.py currently looks for a 'cc =' line in
1676
- # build.ninja so needs something valid here. http://crbug.com/233985
1677
- cc = 'cl.exe'
1678
- cxx = 'cl.exe'
1679
- ld = 'link.exe'
1680
- ld_host = '$ld'
1681
- else:
1682
- cc = 'gcc'
1683
- cxx = 'g++'
1684
- ld = '$cc'
1685
- ldxx = '$cxx'
1686
- ld_host = '$cc_host'
1687
- ldxx_host = '$cxx_host'
1688
-
1689
- cc_host = None
1690
- cxx_host = None
1691
- cc_host_global_setting = None
1692
- cxx_host_global_setting = None
1693
-
1694
- build_file, _, _ = gyp.common.ParseQualifiedTarget(target_list[0])
1695
- make_global_settings = data[build_file].get('make_global_settings', [])
1696
- build_to_root = gyp.common.InvertRelativePath(build_dir,
1697
- options.toplevel_dir)
1698
- wrappers = {}
1699
- for key, value in make_global_settings:
1700
- if key == 'CC':
1701
- cc = os.path.join(build_to_root, value)
1702
- if key == 'CXX':
1703
- cxx = os.path.join(build_to_root, value)
1704
- if key == 'CC.host':
1705
- cc_host = os.path.join(build_to_root, value)
1706
- cc_host_global_setting = value
1707
- if key == 'CXX.host':
1708
- cxx_host = os.path.join(build_to_root, value)
1709
- cxx_host_global_setting = value
1710
- if key.endswith('_wrapper'):
1711
- wrappers[key[:-len('_wrapper')]] = os.path.join(build_to_root, value)
1712
-
1713
- # Support wrappers from environment variables too.
1714
- for key, value in os.environ.iteritems():
1715
- if key.lower().endswith('_wrapper'):
1716
- key_prefix = key[:-len('_wrapper')]
1717
- key_prefix = re.sub(r'\.HOST$', '.host', key_prefix)
1718
- wrappers[key_prefix] = os.path.join(build_to_root, value)
1719
-
1720
- if flavor == 'win':
1721
- cl_paths = gyp.msvs_emulation.GenerateEnvironmentFiles(
1722
- toplevel_build, generator_flags, OpenOutput)
1723
- for arch, path in cl_paths.iteritems():
1724
- master_ninja.variable(
1725
- 'cl_' + arch, CommandWithWrapper('CC', wrappers,
1726
- QuoteShellArgument(path, flavor)))
1727
-
1728
- cc = GetEnvironFallback(['CC_target', 'CC'], cc)
1729
- master_ninja.variable('cc', CommandWithWrapper('CC', wrappers, cc))
1730
- cxx = GetEnvironFallback(['CXX_target', 'CXX'], cxx)
1731
- master_ninja.variable('cxx', CommandWithWrapper('CXX', wrappers, cxx))
1732
-
1733
- if flavor == 'win':
1734
- master_ninja.variable('ld', ld)
1735
- master_ninja.variable('idl', 'midl.exe')
1736
- master_ninja.variable('ar', 'lib.exe')
1737
- master_ninja.variable('rc', 'rc.exe')
1738
- master_ninja.variable('asm', 'ml.exe')
1739
- master_ninja.variable('mt', 'mt.exe')
1740
- else:
1741
- master_ninja.variable('ld', CommandWithWrapper('LINK', wrappers, ld))
1742
- master_ninja.variable('ldxx', CommandWithWrapper('LINK', wrappers, ldxx))
1743
- master_ninja.variable('ar', GetEnvironFallback(['AR_target', 'AR'], 'ar'))
1744
-
1745
- if generator_supports_multiple_toolsets:
1746
- if not cc_host:
1747
- cc_host = cc
1748
- if not cxx_host:
1749
- cxx_host = cxx
1750
-
1751
- master_ninja.variable('ar_host', GetEnvironFallback(['AR_host'], 'ar'))
1752
- cc_host = GetEnvironFallback(['CC_host'], cc_host)
1753
- cxx_host = GetEnvironFallback(['CXX_host'], cxx_host)
1754
-
1755
- # The environment variable could be used in 'make_global_settings', like
1756
- # ['CC.host', '$(CC)'] or ['CXX.host', '$(CXX)'], transform them here.
1757
- if '$(CC)' in cc_host and cc_host_global_setting:
1758
- cc_host = cc_host_global_setting.replace('$(CC)', cc)
1759
- if '$(CXX)' in cxx_host and cxx_host_global_setting:
1760
- cxx_host = cxx_host_global_setting.replace('$(CXX)', cxx)
1761
- master_ninja.variable('cc_host',
1762
- CommandWithWrapper('CC.host', wrappers, cc_host))
1763
- master_ninja.variable('cxx_host',
1764
- CommandWithWrapper('CXX.host', wrappers, cxx_host))
1765
- if flavor == 'win':
1766
- master_ninja.variable('ld_host', ld_host)
1767
- else:
1768
- master_ninja.variable('ld_host', CommandWithWrapper(
1769
- 'LINK', wrappers, ld_host))
1770
- master_ninja.variable('ldxx_host', CommandWithWrapper(
1771
- 'LINK', wrappers, ldxx_host))
1772
-
1773
- master_ninja.newline()
1774
-
1775
- master_ninja.pool('link_pool', depth=GetDefaultConcurrentLinks())
1776
- master_ninja.newline()
1777
-
1778
- deps = 'msvc' if flavor == 'win' else 'gcc'
1779
-
1780
- if flavor != 'win':
1781
- master_ninja.rule(
1782
- 'cc',
1783
- description='CC $out',
1784
- command=('$cc -MMD -MF $out.d $defines $includes $cflags $cflags_c '
1785
- '$cflags_pch_c -c $in -o $out'),
1786
- depfile='$out.d',
1787
- deps=deps)
1788
- master_ninja.rule(
1789
- 'cc_s',
1790
- description='CC $out',
1791
- command=('$cc $defines $includes $cflags $cflags_c '
1792
- '$cflags_pch_c -c $in -o $out'))
1793
- master_ninja.rule(
1794
- 'cxx',
1795
- description='CXX $out',
1796
- command=('$cxx -MMD -MF $out.d $defines $includes $cflags $cflags_cc '
1797
- '$cflags_pch_cc -c $in -o $out'),
1798
- depfile='$out.d',
1799
- deps=deps)
1800
- else:
1801
- cc_command = ('ninja -t msvc -e $arch ' +
1802
- '-- '
1803
- '$cc /nologo /showIncludes /FC '
1804
- '@$out.rsp /c $in /Fo$out /Fd$pdbname ')
1805
- cxx_command = ('ninja -t msvc -e $arch ' +
1806
- '-- '
1807
- '$cxx /nologo /showIncludes /FC '
1808
- '@$out.rsp /c $in /Fo$out /Fd$pdbname ')
1809
- master_ninja.rule(
1810
- 'cc',
1811
- description='CC $out',
1812
- command=cc_command,
1813
- rspfile='$out.rsp',
1814
- rspfile_content='$defines $includes $cflags $cflags_c',
1815
- deps=deps)
1816
- master_ninja.rule(
1817
- 'cxx',
1818
- description='CXX $out',
1819
- command=cxx_command,
1820
- rspfile='$out.rsp',
1821
- rspfile_content='$defines $includes $cflags $cflags_cc',
1822
- deps=deps)
1823
- master_ninja.rule(
1824
- 'idl',
1825
- description='IDL $in',
1826
- command=('%s gyp-win-tool midl-wrapper $arch $outdir '
1827
- '$tlb $h $dlldata $iid $proxy $in '
1828
- '$idlflags' % sys.executable))
1829
- master_ninja.rule(
1830
- 'rc',
1831
- description='RC $in',
1832
- # Note: $in must be last otherwise rc.exe complains.
1833
- command=('%s gyp-win-tool rc-wrapper '
1834
- '$arch $rc $defines $resource_includes $rcflags /fo$out $in' %
1835
- sys.executable))
1836
- master_ninja.rule(
1837
- 'asm',
1838
- description='ASM $in',
1839
- command=('%s gyp-win-tool asm-wrapper '
1840
- '$arch $asm $defines $includes /c /Fo $out $in' %
1841
- sys.executable))
1842
-
1843
- if flavor != 'mac' and flavor != 'win':
1844
- master_ninja.rule(
1845
- 'alink',
1846
- description='AR $out',
1847
- command='rm -f $out && $ar rcs $out $in')
1848
- master_ninja.rule(
1849
- 'alink_thin',
1850
- description='AR $out',
1851
- command='rm -f $out && $ar rcsT $out $in')
1852
-
1853
- # This allows targets that only need to depend on $lib's API to declare an
1854
- # order-only dependency on $lib.TOC and avoid relinking such downstream
1855
- # dependencies when $lib changes only in non-public ways.
1856
- # The resulting string leaves an uninterpolated %{suffix} which
1857
- # is used in the final substitution below.
1858
- mtime_preserving_solink_base = (
1859
- 'if [ ! -e $lib -o ! -e ${lib}.TOC ]; then '
1860
- '%(solink)s && %(extract_toc)s > ${lib}.TOC; else '
1861
- '%(solink)s && %(extract_toc)s > ${lib}.tmp && '
1862
- 'if ! cmp -s ${lib}.tmp ${lib}.TOC; then mv ${lib}.tmp ${lib}.TOC ; '
1863
- 'fi; fi'
1864
- % { 'solink':
1865
- '$ld -shared $ldflags -o $lib -Wl,-soname=$soname %(suffix)s',
1866
- 'extract_toc':
1867
- ('{ readelf -d ${lib} | grep SONAME ; '
1868
- 'nm -gD -f p ${lib} | cut -f1-2 -d\' \'; }')})
1869
-
1870
- master_ninja.rule(
1871
- 'solink',
1872
- description='SOLINK $lib',
1873
- restat=True,
1874
- command=(mtime_preserving_solink_base % {
1875
- 'suffix': '-Wl,--whole-archive $in $solibs -Wl,--no-whole-archive '
1876
- '$libs'}),
1877
- pool='link_pool')
1878
- master_ninja.rule(
1879
- 'solink_module',
1880
- description='SOLINK(module) $lib',
1881
- restat=True,
1882
- command=(mtime_preserving_solink_base % {
1883
- 'suffix': '-Wl,--start-group $in $solibs -Wl,--end-group '
1884
- '$libs'}),
1885
- pool='link_pool')
1886
- master_ninja.rule(
1887
- 'link',
1888
- description='LINK $out',
1889
- command=('$ld $ldflags -o $out '
1890
- '-Wl,--start-group $in $solibs -Wl,--end-group $libs'),
1891
- pool='link_pool')
1892
- elif flavor == 'win':
1893
- master_ninja.rule(
1894
- 'alink',
1895
- description='LIB $out',
1896
- command=('%s gyp-win-tool link-wrapper $arch '
1897
- '$ar /nologo /ignore:4221 /OUT:$out @$out.rsp' %
1898
- sys.executable),
1899
- rspfile='$out.rsp',
1900
- rspfile_content='$in_newline $libflags')
1901
- _AddWinLinkRules(master_ninja, embed_manifest=True, link_incremental=True)
1902
- _AddWinLinkRules(master_ninja, embed_manifest=True, link_incremental=False)
1903
- _AddWinLinkRules(master_ninja, embed_manifest=False, link_incremental=False)
1904
- # Do not generate rules for embed_manifest=False and link_incremental=True
1905
- # because in that case rules for (False, False) should be used (see
1906
- # implementation of _GetWinLinkRuleNameSuffix()).
1907
- else:
1908
- master_ninja.rule(
1909
- 'objc',
1910
- description='OBJC $out',
1911
- command=('$cc -MMD -MF $out.d $defines $includes $cflags $cflags_objc '
1912
- '$cflags_pch_objc -c $in -o $out'),
1913
- depfile='$out.d',
1914
- deps=deps)
1915
- master_ninja.rule(
1916
- 'objcxx',
1917
- description='OBJCXX $out',
1918
- command=('$cxx -MMD -MF $out.d $defines $includes $cflags $cflags_objcc '
1919
- '$cflags_pch_objcc -c $in -o $out'),
1920
- depfile='$out.d',
1921
- deps=deps)
1922
- master_ninja.rule(
1923
- 'alink',
1924
- description='LIBTOOL-STATIC $out, POSTBUILDS',
1925
- command='rm -f $out && '
1926
- './gyp-mac-tool filter-libtool libtool $libtool_flags '
1927
- '-static -o $out $in'
1928
- '$postbuilds')
1929
- master_ninja.rule(
1930
- 'lipo',
1931
- description='LIPO $out, POSTBUILDS',
1932
- command='rm -f $out && lipo -create $in -output $out$postbuilds')
1933
-
1934
- # Record the public interface of $lib in $lib.TOC. See the corresponding
1935
- # comment in the posix section above for details.
1936
- solink_base = '$ld %(type)s $ldflags -o $lib %(suffix)s'
1937
- mtime_preserving_solink_base = (
1938
- 'if [ ! -e $lib -o ! -e ${lib}.TOC ] || '
1939
- # Always force dependent targets to relink if this library
1940
- # reexports something. Handling this correctly would require
1941
- # recursive TOC dumping but this is rare in practice, so punt.
1942
- 'otool -l $lib | grep -q LC_REEXPORT_DYLIB ; then '
1943
- '%(solink)s && %(extract_toc)s > ${lib}.TOC; '
1944
- 'else '
1945
- '%(solink)s && %(extract_toc)s > ${lib}.tmp && '
1946
- 'if ! cmp -s ${lib}.tmp ${lib}.TOC; then '
1947
- 'mv ${lib}.tmp ${lib}.TOC ; '
1948
- 'fi; '
1949
- 'fi'
1950
- % { 'solink': solink_base,
1951
- 'extract_toc':
1952
- '{ otool -l $lib | grep LC_ID_DYLIB -A 5; '
1953
- 'nm -gP $lib | cut -f1-2 -d\' \' | grep -v U$$; true; }'})
1954
-
1955
- solink_suffix = '$in $solibs $libs$postbuilds'
1956
- master_ninja.rule(
1957
- 'solink',
1958
- description='SOLINK $lib, POSTBUILDS',
1959
- restat=True,
1960
- command=mtime_preserving_solink_base % {'suffix': solink_suffix,
1961
- 'type': '-shared'},
1962
- pool='link_pool')
1963
- master_ninja.rule(
1964
- 'solink_notoc',
1965
- description='SOLINK $lib, POSTBUILDS',
1966
- restat=True,
1967
- command=solink_base % {'suffix':solink_suffix, 'type': '-shared'},
1968
- pool='link_pool')
1969
-
1970
- solink_module_suffix = '$in $solibs $libs$postbuilds'
1971
- master_ninja.rule(
1972
- 'solink_module',
1973
- description='SOLINK(module) $lib, POSTBUILDS',
1974
- restat=True,
1975
- command=mtime_preserving_solink_base % {'suffix': solink_module_suffix,
1976
- 'type': '-bundle'},
1977
- pool='link_pool')
1978
- master_ninja.rule(
1979
- 'solink_module_notoc',
1980
- description='SOLINK(module) $lib, POSTBUILDS',
1981
- restat=True,
1982
- command=solink_base % {'suffix': solink_module_suffix, 'type': '-bundle'},
1983
- pool='link_pool')
1984
-
1985
- master_ninja.rule(
1986
- 'link',
1987
- description='LINK $out, POSTBUILDS',
1988
- command=('$ld $ldflags -o $out '
1989
- '$in $solibs $libs$postbuilds'),
1990
- pool='link_pool')
1991
- master_ninja.rule(
1992
- 'preprocess_infoplist',
1993
- description='PREPROCESS INFOPLIST $out',
1994
- command=('$cc -E -P -Wno-trigraphs -x c $defines $in -o $out && '
1995
- 'plutil -convert xml1 $out $out'))
1996
- master_ninja.rule(
1997
- 'copy_infoplist',
1998
- description='COPY INFOPLIST $in',
1999
- command='$env ./gyp-mac-tool copy-info-plist $in $out $keys')
2000
- master_ninja.rule(
2001
- 'mac_tool',
2002
- description='MACTOOL $mactool_cmd $in',
2003
- command='$env ./gyp-mac-tool $mactool_cmd $in $out')
2004
- master_ninja.rule(
2005
- 'package_framework',
2006
- description='PACKAGE FRAMEWORK $out, POSTBUILDS',
2007
- command='./gyp-mac-tool package-framework $out $version$postbuilds '
2008
- '&& touch $out')
2009
- if flavor == 'win':
2010
- master_ninja.rule(
2011
- 'stamp',
2012
- description='STAMP $out',
2013
- command='%s gyp-win-tool stamp $out' % sys.executable)
2014
- master_ninja.rule(
2015
- 'copy',
2016
- description='COPY $in $out',
2017
- command='%s gyp-win-tool recursive-mirror $in $out' % sys.executable)
2018
- else:
2019
- master_ninja.rule(
2020
- 'stamp',
2021
- description='STAMP $out',
2022
- command='${postbuilds}touch $out')
2023
- master_ninja.rule(
2024
- 'copy',
2025
- description='COPY $in $out',
2026
- command='rm -rf $out && cp -af $in $out')
2027
- master_ninja.newline()
2028
-
2029
- all_targets = set()
2030
- for build_file in params['build_files']:
2031
- for target in gyp.common.AllTargets(target_list,
2032
- target_dicts,
2033
- os.path.normpath(build_file)):
2034
- all_targets.add(target)
2035
- all_outputs = set()
2036
-
2037
- # target_outputs is a map from qualified target name to a Target object.
2038
- target_outputs = {}
2039
- # target_short_names is a map from target short name to a list of Target
2040
- # objects.
2041
- target_short_names = {}
2042
-
2043
- for qualified_target in target_list:
2044
- # qualified_target is like: third_party/icu/icu.gyp:icui18n#target
2045
- build_file, name, toolset = \
2046
- gyp.common.ParseQualifiedTarget(qualified_target)
2047
-
2048
- this_make_global_settings = data[build_file].get('make_global_settings', [])
2049
- assert make_global_settings == this_make_global_settings, (
2050
- "make_global_settings needs to be the same for all targets.")
2051
-
2052
- spec = target_dicts[qualified_target]
2053
- if flavor == 'mac':
2054
- gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec)
2055
-
2056
- build_file = gyp.common.RelativePath(build_file, options.toplevel_dir)
2057
-
2058
- base_path = os.path.dirname(build_file)
2059
- obj = 'obj'
2060
- if toolset != 'target':
2061
- obj += '.' + toolset
2062
- output_file = os.path.join(obj, base_path, name + '.ninja')
2063
-
2064
- ninja_output = StringIO()
2065
- writer = NinjaWriter(qualified_target, target_outputs, base_path, build_dir,
2066
- ninja_output,
2067
- toplevel_build, output_file,
2068
- flavor, toplevel_dir=options.toplevel_dir)
2069
-
2070
- target = writer.WriteSpec(spec, config_name, generator_flags)
2071
-
2072
- if ninja_output.tell() > 0:
2073
- # Only create files for ninja files that actually have contents.
2074
- with OpenOutput(os.path.join(toplevel_build, output_file)) as ninja_file:
2075
- ninja_file.write(ninja_output.getvalue())
2076
- ninja_output.close()
2077
- master_ninja.subninja(output_file)
2078
-
2079
- if target:
2080
- if name != target.FinalOutput() and spec['toolset'] == 'target':
2081
- target_short_names.setdefault(name, []).append(target)
2082
- target_outputs[qualified_target] = target
2083
- if qualified_target in all_targets:
2084
- all_outputs.add(target.FinalOutput())
2085
-
2086
- if target_short_names:
2087
- # Write a short name to build this target. This benefits both the
2088
- # "build chrome" case as well as the gyp tests, which expect to be
2089
- # able to run actions and build libraries by their short name.
2090
- master_ninja.newline()
2091
- master_ninja.comment('Short names for targets.')
2092
- for short_name in target_short_names:
2093
- master_ninja.build(short_name, 'phony', [x.FinalOutput() for x in
2094
- target_short_names[short_name]])
2095
-
2096
- if all_outputs:
2097
- master_ninja.newline()
2098
- master_ninja.build('all', 'phony', list(all_outputs))
2099
- master_ninja.default(generator_flags.get('default_target', 'all'))
2100
-
2101
-
2102
- def PerformBuild(data, configurations, params):
2103
- options = params['options']
2104
- for config in configurations:
2105
- builddir = os.path.join(options.toplevel_dir, 'out', config)
2106
- arguments = ['ninja', '-C', builddir]
2107
- print 'Building [%s]: %s' % (config, arguments)
2108
- subprocess.check_call(arguments)
2109
-
2110
-
2111
- def CallGenerateOutputForConfig(arglist):
2112
- # Ignore the interrupt signal so that the parent process catches it and
2113
- # kills all multiprocessing children.
2114
- signal.signal(signal.SIGINT, signal.SIG_IGN)
2115
-
2116
- (target_list, target_dicts, data, params, config_name) = arglist
2117
- GenerateOutputForConfig(target_list, target_dicts, data, params, config_name)
2118
-
2119
-
2120
- def GenerateOutput(target_list, target_dicts, data, params):
2121
- # Update target_dicts for iOS device builds.
2122
- target_dicts = gyp.xcode_emulation.CloneConfigurationForDeviceAndEmulator(
2123
- target_dicts)
2124
-
2125
- user_config = params.get('generator_flags', {}).get('config', None)
2126
- if gyp.common.GetFlavor(params) == 'win':
2127
- target_list, target_dicts = MSVSUtil.ShardTargets(target_list, target_dicts)
2128
- target_list, target_dicts = MSVSUtil.InsertLargePdbShims(
2129
- target_list, target_dicts, generator_default_variables)
2130
-
2131
- if user_config:
2132
- GenerateOutputForConfig(target_list, target_dicts, data, params,
2133
- user_config)
2134
- else:
2135
- config_names = target_dicts[target_list[0]]['configurations'].keys()
2136
- if params['parallel']:
2137
- try:
2138
- pool = multiprocessing.Pool(len(config_names))
2139
- arglists = []
2140
- for config_name in config_names:
2141
- arglists.append(
2142
- (target_list, target_dicts, data, params, config_name))
2143
- pool.map(CallGenerateOutputForConfig, arglists)
2144
- except KeyboardInterrupt, e:
2145
- pool.terminate()
2146
- raise e
2147
- else:
2148
- for config_name in config_names:
2149
- GenerateOutputForConfig(target_list, target_dicts, data, params,
2150
- config_name)