origen 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ctags +0 -0
  3. data/bin/origen +165 -1
  4. data/bin/rgen +2 -0
  5. data/config/application.rb +141 -0
  6. data/config/commands.rb +72 -0
  7. data/config/development.rb +7 -0
  8. data/config/environment.rb +0 -0
  9. data/config/rgen.policy +7 -0
  10. data/config/rubocop/easy.yml +620 -0
  11. data/config/rubocop/easy_disabled.yml +271 -0
  12. data/config/rubocop/easy_enabled.yml +731 -0
  13. data/config/rubocop/strict.yml +620 -0
  14. data/config/rubocop/strict_disabled.yml +247 -0
  15. data/config/rubocop/strict_enabled.yml +755 -0
  16. data/config/users.rb +20 -0
  17. data/config/version.rb +1 -1
  18. data/helpers/url.rb +68 -0
  19. data/lib/c99/doc_interface.rb +56 -0
  20. data/lib/c99/j750_interface.rb +85 -0
  21. data/lib/c99/nvm.rb +89 -0
  22. data/lib/c99/target/mock2.rb +1 -0
  23. data/lib/c99/target/subdir/mock3.rb +1 -0
  24. data/lib/option_parser/optparse.rb +12 -0
  25. data/lib/origen/acronyms.rb +60 -0
  26. data/lib/origen/application/command_dispatcher.rb +12 -0
  27. data/lib/origen/application/configuration.rb +206 -0
  28. data/lib/origen/application/configuration_manager.rb +78 -0
  29. data/lib/origen/application/deployer.rb +367 -0
  30. data/lib/origen/application/environment.rb +186 -0
  31. data/lib/origen/application/lsf.rb +145 -0
  32. data/lib/origen/application/lsf_manager.rb +657 -0
  33. data/lib/origen/application/plugins_manager.rb +280 -0
  34. data/lib/origen/application/release.rb +359 -0
  35. data/lib/origen/application/runner.rb +246 -0
  36. data/lib/origen/application/statistics.rb +191 -0
  37. data/lib/origen/application/target.rb +374 -0
  38. data/lib/origen/application/version_tracker.rb +59 -0
  39. data/lib/origen/application/workspace_manager.rb +151 -0
  40. data/lib/origen/application.rb +746 -0
  41. data/lib/origen/bugs/bug.rb +36 -0
  42. data/lib/origen/bugs.rb +45 -0
  43. data/lib/origen/callbacks.rb +35 -0
  44. data/lib/origen/chip_mode.rb +118 -0
  45. data/lib/origen/chip_package.rb +461 -0
  46. data/lib/origen/client.rb +87 -0
  47. data/lib/origen/code_generators/actions.rb +258 -0
  48. data/lib/origen/code_generators/base.rb +57 -0
  49. data/lib/origen/code_generators/bundler.rb +17 -0
  50. data/lib/origen/code_generators/gem_setup.rb +49 -0
  51. data/lib/origen/code_generators/rake.rb +13 -0
  52. data/lib/origen/code_generators/rspec.rb +12 -0
  53. data/lib/origen/code_generators/semver.rb +39 -0
  54. data/lib/origen/code_generators/timever.rb +37 -0
  55. data/lib/origen/code_generators.rb +111 -0
  56. data/lib/origen/commands/add.rb +12 -0
  57. data/lib/origen/commands/compile.rb +62 -0
  58. data/lib/origen/commands/ctags.rb +9 -0
  59. data/lib/origen/commands/dispatch.rb +22 -0
  60. data/lib/origen/commands/environment.rb +11 -0
  61. data/lib/origen/commands/fetch.rb +63 -0
  62. data/lib/origen/commands/generate.rb +130 -0
  63. data/lib/origen/commands/interactive.rb +73 -0
  64. data/lib/origen/commands/lint.rb +82 -0
  65. data/lib/origen/commands/lsf.rb +93 -0
  66. data/lib/origen/commands/merge.rb +55 -0
  67. data/lib/origen/commands/modifications.rb +12 -0
  68. data/lib/origen/commands/new.rb +113 -0
  69. data/lib/origen/commands/plugin.rb +105 -0
  70. data/lib/origen/commands/program.rb +70 -0
  71. data/lib/origen/commands/rc.rb +442 -0
  72. data/lib/origen/commands/save.rb +56 -0
  73. data/lib/origen/commands/target.rb +27 -0
  74. data/lib/origen/commands/time.rb +127 -0
  75. data/lib/origen/commands/version.rb +17 -0
  76. data/lib/origen/commands/web.rb +221 -0
  77. data/lib/origen/commands.rb +272 -0
  78. data/lib/origen/commands_global.rb +76 -0
  79. data/lib/origen/controller.rb +94 -0
  80. data/lib/origen/core_ext/array.rb +23 -0
  81. data/lib/origen/core_ext/bignum.rb +36 -0
  82. data/lib/origen/core_ext/enumerable.rb +76 -0
  83. data/lib/origen/core_ext/fixnum.rb +46 -0
  84. data/lib/origen/core_ext/hash.rb +52 -0
  85. data/lib/origen/core_ext/module.rb +14 -0
  86. data/lib/origen/core_ext/numeric.rb +126 -0
  87. data/lib/origen/core_ext/object.rb +13 -0
  88. data/lib/origen/core_ext/range.rb +7 -0
  89. data/lib/origen/core_ext/string.rb +124 -0
  90. data/lib/origen/core_ext.rb +10 -0
  91. data/lib/origen/database/key_value_store.rb +111 -0
  92. data/lib/origen/database/key_value_stores.rb +108 -0
  93. data/lib/origen/database.rb +6 -0
  94. data/lib/origen/encodings.rb +102 -0
  95. data/lib/origen/features/feature.rb +22 -0
  96. data/lib/origen/features.rb +104 -0
  97. data/lib/origen/file_handler.rb +429 -0
  98. data/lib/origen/generator/comparator.rb +56 -0
  99. data/lib/origen/generator/compiler.rb +277 -0
  100. data/lib/origen/generator/flow.rb +49 -0
  101. data/lib/origen/generator/job.rb +131 -0
  102. data/lib/origen/generator/pattern.rb +356 -0
  103. data/lib/origen/generator/pattern_finder.rb +155 -0
  104. data/lib/origen/generator/pattern_iterator.rb +55 -0
  105. data/lib/origen/generator/renderer.rb +113 -0
  106. data/lib/origen/generator/resources.rb +40 -0
  107. data/lib/origen/generator/stage.rb +89 -0
  108. data/lib/origen/generator.rb +85 -0
  109. data/lib/origen/global_methods.rb +205 -0
  110. data/lib/origen/import_manager.rb +596 -0
  111. data/lib/origen/location/base.rb +116 -0
  112. data/lib/origen/location/map.rb +83 -0
  113. data/lib/origen/location.rb +6 -0
  114. data/lib/origen/log.rb +217 -0
  115. data/lib/origen/logger_methods.rb +56 -0
  116. data/lib/origen/mode.rb +61 -0
  117. data/lib/origen/model.rb +267 -0
  118. data/lib/origen/model_initializer.rb +45 -0
  119. data/lib/origen/nvm/block_array.rb +72 -0
  120. data/lib/origen/nvm.rb +6 -0
  121. data/lib/origen/parameters/live.rb +22 -0
  122. data/lib/origen/parameters/missing.rb +28 -0
  123. data/lib/origen/parameters/set.rb +144 -0
  124. data/lib/origen/parameters.rb +107 -0
  125. data/lib/origen/pdm.rb +218 -0
  126. data/lib/origen/pins/function_proxy.rb +36 -0
  127. data/lib/origen/pins/ground_pin.rb +6 -0
  128. data/lib/origen/pins/pin.rb +860 -0
  129. data/lib/origen/pins/pin_bank.rb +349 -0
  130. data/lib/origen/pins/pin_clock.rb +124 -0
  131. data/lib/origen/pins/pin_collection.rb +492 -0
  132. data/lib/origen/pins/pin_common.rb +206 -0
  133. data/lib/origen/pins/port.rb +268 -0
  134. data/lib/origen/pins/power_pin.rb +30 -0
  135. data/lib/origen/pins.rb +696 -0
  136. data/lib/origen/registers/bit.rb +562 -0
  137. data/lib/origen/registers/bit_collection.rb +787 -0
  138. data/lib/origen/registers/container.rb +288 -0
  139. data/lib/origen/registers/domain.rb +16 -0
  140. data/lib/origen/registers/reg.rb +1406 -0
  141. data/lib/origen/registers/reg_collection.rb +24 -0
  142. data/lib/origen/registers.rb +652 -0
  143. data/lib/origen/regression_manager.rb +251 -0
  144. data/lib/origen/remote_manager.rb +340 -0
  145. data/lib/origen/revision_control/base.rb +257 -0
  146. data/lib/origen/revision_control/design_sync.rb +276 -0
  147. data/lib/origen/revision_control/git.rb +243 -0
  148. data/lib/origen/revision_control/subversion.rb +6 -0
  149. data/lib/origen/revision_control.rb +44 -0
  150. data/lib/origen/ruby_version_check.rb +131 -0
  151. data/lib/origen/site_config.rb +61 -0
  152. data/lib/origen/specs/checkers.rb +103 -0
  153. data/lib/origen/specs/creation_info.rb +17 -0
  154. data/lib/origen/specs/doc_resource.rb +91 -0
  155. data/lib/origen/specs/exhibit.rb +17 -0
  156. data/lib/origen/specs/mode_select.rb +16 -0
  157. data/lib/origen/specs/note.rb +17 -0
  158. data/lib/origen/specs/override.rb +21 -0
  159. data/lib/origen/specs/power_supply.rb +13 -0
  160. data/lib/origen/specs/spec.rb +226 -0
  161. data/lib/origen/specs/version_history.rb +14 -0
  162. data/lib/origen/specs.rb +552 -0
  163. data/lib/origen/sub_blocks.rb +298 -0
  164. data/lib/origen/tester/api.rb +277 -0
  165. data/lib/origen/tester/bdm/bdm.rb +25 -0
  166. data/lib/origen/tester/command_based_tester.rb +46 -0
  167. data/lib/origen/tester/doc/doc.rb +226 -0
  168. data/lib/origen/tester/doc/generator/flow.rb +71 -0
  169. data/lib/origen/tester/doc/generator/flow_line.rb +203 -0
  170. data/lib/origen/tester/doc/generator/test.rb +68 -0
  171. data/lib/origen/tester/doc/generator/test_group.rb +66 -0
  172. data/lib/origen/tester/doc/generator/tests.rb +47 -0
  173. data/lib/origen/tester/doc/generator.rb +126 -0
  174. data/lib/origen/tester/doc/model.rb +162 -0
  175. data/lib/origen/tester/generator/flow_control_api.rb +606 -0
  176. data/lib/origen/tester/generator/identity_map.rb +25 -0
  177. data/lib/origen/tester/generator/placeholder.rb +13 -0
  178. data/lib/origen/tester/generator/test_numberer.rb +25 -0
  179. data/lib/origen/tester/generator.rb +271 -0
  180. data/lib/origen/tester/interface.rb +154 -0
  181. data/lib/origen/tester/j750/files.rb +45 -0
  182. data/lib/origen/tester/j750/generator/flow.rb +123 -0
  183. data/lib/origen/tester/j750/generator/flow_line.rb +288 -0
  184. data/lib/origen/tester/j750/generator/patgroup.rb +111 -0
  185. data/lib/origen/tester/j750/generator/patgroups.rb +41 -0
  186. data/lib/origen/tester/j750/generator/patset.rb +111 -0
  187. data/lib/origen/tester/j750/generator/patsets.rb +41 -0
  188. data/lib/origen/tester/j750/generator/templates/flow.txt.erb +9 -0
  189. data/lib/origen/tester/j750/generator/templates/instances.txt.erb +16 -0
  190. data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +8 -0
  191. data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +10 -0
  192. data/lib/origen/tester/j750/generator/test_instance.rb +846 -0
  193. data/lib/origen/tester/j750/generator/test_instance_group.rb +60 -0
  194. data/lib/origen/tester/j750/generator/test_instances.rb +182 -0
  195. data/lib/origen/tester/j750/generator.rb +203 -0
  196. data/lib/origen/tester/j750/j750.rb +845 -0
  197. data/lib/origen/tester/j750/j750_hpt.rb +35 -0
  198. data/lib/origen/tester/j750/parser/ac_spec.rb +11 -0
  199. data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
  200. data/lib/origen/tester/j750/parser/dc_spec.rb +36 -0
  201. data/lib/origen/tester/j750/parser/dc_specs.rb +50 -0
  202. data/lib/origen/tester/j750/parser/descriptions.rb +340 -0
  203. data/lib/origen/tester/j750/parser/flow.rb +111 -0
  204. data/lib/origen/tester/j750/parser/flow_line.rb +207 -0
  205. data/lib/origen/tester/j750/parser/flows.rb +23 -0
  206. data/lib/origen/tester/j750/parser/pattern_set.rb +94 -0
  207. data/lib/origen/tester/j750/parser/pattern_sets.rb +33 -0
  208. data/lib/origen/tester/j750/parser/test_instance.rb +322 -0
  209. data/lib/origen/tester/j750/parser/test_instances.rb +26 -0
  210. data/lib/origen/tester/j750/parser/timeset.rb +15 -0
  211. data/lib/origen/tester/j750/parser/timesets.rb +0 -0
  212. data/lib/origen/tester/j750/parser.rb +104 -0
  213. data/lib/origen/tester/jlink/jlink.rb +33 -0
  214. data/lib/origen/tester/parser/description_lookup.rb +64 -0
  215. data/lib/origen/tester/parser/searchable_array.rb +32 -0
  216. data/lib/origen/tester/parser/searchable_hash.rb +32 -0
  217. data/lib/origen/tester/parser.rb +24 -0
  218. data/lib/origen/tester/time.rb +338 -0
  219. data/lib/origen/tester/timing.rb +253 -0
  220. data/lib/origen/tester/ultraflex/files.rb +45 -0
  221. data/lib/origen/tester/ultraflex/generator/flow.rb +119 -0
  222. data/lib/origen/tester/ultraflex/generator/flow_line.rb +269 -0
  223. data/lib/origen/tester/ultraflex/generator/patgroup.rb +111 -0
  224. data/lib/origen/tester/ultraflex/generator/patgroups.rb +41 -0
  225. data/lib/origen/tester/ultraflex/generator/patset.rb +111 -0
  226. data/lib/origen/tester/ultraflex/generator/patsets.rb +41 -0
  227. data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +9 -0
  228. data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +16 -0
  229. data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +8 -0
  230. data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +10 -0
  231. data/lib/origen/tester/ultraflex/generator/test_instance.rb +622 -0
  232. data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +60 -0
  233. data/lib/origen/tester/ultraflex/generator/test_instances.rb +174 -0
  234. data/lib/origen/tester/ultraflex/generator.rb +200 -0
  235. data/lib/origen/tester/ultraflex/parser/ac_spec.rb +11 -0
  236. data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
  237. data/lib/origen/tester/ultraflex/parser/dc_spec.rb +36 -0
  238. data/lib/origen/tester/ultraflex/parser/dc_specs.rb +50 -0
  239. data/lib/origen/tester/ultraflex/parser/descriptions.rb +342 -0
  240. data/lib/origen/tester/ultraflex/parser/flow.rb +111 -0
  241. data/lib/origen/tester/ultraflex/parser/flow_line.rb +207 -0
  242. data/lib/origen/tester/ultraflex/parser/flows.rb +23 -0
  243. data/lib/origen/tester/ultraflex/parser/pattern_set.rb +94 -0
  244. data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +33 -0
  245. data/lib/origen/tester/ultraflex/parser/test_instance.rb +262 -0
  246. data/lib/origen/tester/ultraflex/parser/test_instances.rb +26 -0
  247. data/lib/origen/tester/ultraflex/parser/timeset.rb +15 -0
  248. data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
  249. data/lib/origen/tester/ultraflex/parser.rb +104 -0
  250. data/lib/origen/tester/ultraflex/ultraflex.rb +759 -0
  251. data/lib/origen/tester/v93k/generator/flow.rb +63 -0
  252. data/lib/origen/tester/v93k/generator/flow_node/print.rb +10 -0
  253. data/lib/origen/tester/v93k/generator/flow_node.rb +17 -0
  254. data/lib/origen/tester/v93k/generator/pattern.rb +16 -0
  255. data/lib/origen/tester/v93k/generator/pattern_master.rb +54 -0
  256. data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +6 -0
  257. data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +11 -0
  258. data/lib/origen/tester/v93k/generator/templates/template.flow.erb +121 -0
  259. data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +9 -0
  260. data/lib/origen/tester/v93k/generator/test_function.rb +103 -0
  261. data/lib/origen/tester/v93k/generator/test_functions.rb +79 -0
  262. data/lib/origen/tester/v93k/generator/test_method.rb +46 -0
  263. data/lib/origen/tester/v93k/generator/test_methods.rb +75 -0
  264. data/lib/origen/tester/v93k/generator/test_suite.rb +54 -0
  265. data/lib/origen/tester/v93k/generator/test_suites.rb +65 -0
  266. data/lib/origen/tester/v93k/generator.rb +80 -0
  267. data/lib/origen/tester/v93k/v93k.rb +420 -0
  268. data/lib/origen/tester/vector.rb +86 -0
  269. data/lib/origen/tester/vector_generator.rb +633 -0
  270. data/lib/origen/tester/vector_pipeline.rb +150 -0
  271. data/lib/origen/tester.rb +56 -0
  272. data/lib/origen/top_level.rb +134 -0
  273. data/lib/origen/users/ldap.rb +65 -0
  274. data/lib/origen/users/user.rb +149 -0
  275. data/lib/origen/users.rb +30 -0
  276. data/lib/origen/utility/block_args.rb +93 -0
  277. data/lib/origen/utility/csv_data.rb +110 -0
  278. data/lib/origen/utility/design_sync.rb +494 -0
  279. data/lib/origen/utility/diff.rb +158 -0
  280. data/lib/origen/utility/input_capture.rb +121 -0
  281. data/lib/origen/utility/mailer.rb +143 -0
  282. data/lib/origen/utility/s_record.rb +205 -0
  283. data/lib/origen/utility/time_and_date.rb +30 -0
  284. data/lib/origen/utility.rb +12 -0
  285. data/lib/origen/version_checker.rb +117 -0
  286. data/lib/origen/version_string.rb +356 -0
  287. data/lib/origen.rb +648 -0
  288. data/lib/tasks/gem.rake +27 -22
  289. data/origen_site_config.yml +36 -0
  290. data/source_setup +17 -0
  291. data/spec/format/rgen_formatter.rb +14 -0
  292. data/templates/api_doc/README.txt.erb +24 -0
  293. data/templates/code_generators/gemfile_app.rb +4 -0
  294. data/templates/code_generators/gemfile_plugin.rb +6 -0
  295. data/templates/code_generators/gemspec.rb +33 -0
  296. data/templates/code_generators/rakefile.rb +10 -0
  297. data/templates/code_generators/spec_helper.rb +49 -0
  298. data/templates/code_generators/version.rb +8 -0
  299. data/templates/code_generators/version_time.rb +3 -0
  300. data/templates/git/gitignore.erb +33 -0
  301. data/templates/j750/_vt_flow.txt.erb +8 -0
  302. data/templates/j750/_vt_instances.txt.erb +4 -0
  303. data/templates/j750/program_sheet.txt.erb +9 -0
  304. data/templates/nanoc/Rules +74 -0
  305. data/templates/nanoc/config.yaml +77 -0
  306. data/templates/nanoc/content/favicon.ico +0 -0
  307. data/templates/nanoc/layouts/bootstrap.html.erb +63 -0
  308. data/templates/nanoc/layouts/bootstrap3.html.erb +71 -0
  309. data/templates/nanoc/layouts/freescale.html.erb +79 -0
  310. data/templates/nanoc/lib/bootstrap_filter.rb +49 -0
  311. data/templates/nanoc/lib/codeblocks_filter.rb +41 -0
  312. data/templates/nanoc/lib/default.rb +2 -0
  313. data/templates/nanoc/lib/gzip_filter.rb +16 -0
  314. data/templates/nanoc/lib/haml_code_filter.rb +41 -0
  315. data/templates/nanoc/lib/helpers.rb +1 -0
  316. data/templates/nanoc/lib/search_filter.rb +62 -0
  317. data/templates/nanoc_dynamic/content/search.js.erb +92 -0
  318. data/templates/shared/web/_logo.html +10 -0
  319. data/templates/test/_inline_sub.txt.erb +2 -0
  320. data/templates/test/environment.txt.erb +1 -0
  321. data/templates/test/inline.txt.erb +11 -0
  322. data/templates/test/inspections.txt.erb +19 -0
  323. data/templates/test/set1/_sub1.txt.erb +12 -0
  324. data/templates/test/set1/_sub4.txt.erb +1 -0
  325. data/templates/test/set1/_sub5.txt.erb +1 -0
  326. data/templates/test/set1/main.txt.erb +53 -0
  327. data/templates/test/set1/sub_dir/_sub2.txt.erb +20 -0
  328. data/templates/test/set1/sub_dir/_sub3.txt.erb +12 -0
  329. data/templates/test/set1/sub_dir/main2.txt.erb +4 -0
  330. data/templates/test/set2/template_with_no_erb_1.txt +9 -0
  331. data/templates/test/set2/template_with_no_erb_2.txt +9 -0
  332. data/templates/test/set3/_layout.html.erb +4 -0
  333. data/templates/test/set3/content.html.erb +6 -0
  334. data/templates/time/filter.rb.erb +15 -0
  335. data/templates/time/rules.rb.erb +45 -0
  336. metadata +639 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ddcef5808db67ab10feab260ef68a062de23e384
4
- data.tar.gz: a31d3955e204c3b270e59a40882ee9c116e0cd44
3
+ metadata.gz: 0bfc62817a98cc10ecff1e306c5711c29cfb83fd
4
+ data.tar.gz: fa98a50f5be546a086019bf9ca026d714761bead
5
5
  SHA512:
6
- metadata.gz: ee60258b03e12ea02ea097851f11038ae22df7d09f3bd95daa2ffa30c5a2a52ce61aa06d9f682f8177262b54133f1dcfad391542c82aade6ca3ca33289cdc6af
7
- data.tar.gz: 6885d4c03c07339c966e6ee242f6397af151ada6dd93f0d22fc29ccb8ac3ea0970bcc498179dcdbf3701fa8492b047a1f1fc8c26977b0fb3114c4675fc5bb169
6
+ metadata.gz: 44360323da0fe46e28eead6e4b6e48ef90adc03fe07f37ca6db2b708ddf61e5ae0c0601b10f13815677861fa2b4e40c52fd4f7f9f9f74503cb0b8e0d1cd17851
7
+ data.tar.gz: 60f45f9498615b81a9eeac1dc626327724e0d39a72f53a74d37085d73b4f80942c6b7541c8d0caea551977d5251c01a06e3de9def283e81addd0598777d40bcd
data/bin/ctags ADDED
Binary file
data/bin/origen CHANGED
@@ -1,3 +1,167 @@
1
1
  #!/usr/bin/env ruby
2
+ $VERBOSE=nil # Don't care about world writable dir warnings and the like
2
3
 
3
- puts "Coming soon..."
4
+ require "pathname"
5
+ require "fileutils"
6
+
7
+ class OrigenBootError < StandardError
8
+ end
9
+
10
+ ORIGEN_MIN_GCC_VERSION = "4.7.3"
11
+
12
+ load File.expand_path('../../lib/origen/site_config.rb', __FILE__)
13
+
14
+ # This will be referenced later in ruby_version_check, the origen used to launch
15
+ # the process is different than the one that actually runs under bundler
16
+ $origen_launch_root = Pathname.new(File.dirname(__FILE__)).parent
17
+
18
+ # Override any influence from $LANG in the users environment
19
+ Encoding.default_external = Encoding::UTF_8
20
+ Encoding.default_internal = Encoding::UTF_8
21
+ ENV['LC_ALL'] = nil
22
+ ENV['LANG'] = nil
23
+ ENV['LANG'] = 'en_US.UTF-8'
24
+
25
+ # Work out what Origen.root is if we are running inside an Origen application, this will be
26
+ # later used to execute from that app's bundle even if the origen executable lives somewhere
27
+ # else (e.g. in the tools repository)
28
+ app_config = File.join('config', 'application.rb')
29
+ if File.exist?(app_config)
30
+ origen_root = Dir.pwd
31
+ else
32
+ path = Pathname.new(Dir.pwd)
33
+ until path.root? || origen_root
34
+ if File.exist?(File.join(path, app_config))
35
+ origen_root = path.to_s
36
+ else
37
+ path = path.parent
38
+ end
39
+ end
40
+ end
41
+
42
+ if origen_root
43
+ # Force everyone to have a consistent way of installing gems with bundler
44
+ ENV['BUNDLE_GEMFILE'] = File.join(origen_root, "Gemfile")
45
+ ENV['BUNDLE_PATH'] = File.expand_path(Origen.site_config.gem_install_dir)
46
+ ENV['BUNDLE_BIN'] = File.join(origen_root, "lbin")
47
+ end
48
+
49
+ if origen_root && File.exist?(ENV['BUNDLE_GEMFILE'])
50
+ # Overriding bundler here so that bundle install can be automated as required
51
+ require 'bundler/shared_helpers'
52
+ if Bundler::SharedHelpers.in_bundle?
53
+ require 'bundler'
54
+ if STDOUT.tty?
55
+ begin
56
+ Bundler.setup
57
+ fail OrigenBootError unless File.exist?(ENV['BUNDLE_BIN'])
58
+ rescue Gem::LoadError, Bundler::BundlerError, OrigenBootError => e
59
+ cmd = "bundle install --gemfile #{ENV["BUNDLE_GEMFILE"]} --binstubs #{ENV["BUNDLE_BIN"]} --path #{ENV["BUNDLE_PATH"]}"
60
+ #puts cmd
61
+ puts "Installing required gems..."
62
+ puts
63
+ `chmod o-w #{origen_root}` # Stops some annoying world writable warnings during install
64
+ `chmod o-w #{origen_root}/bin` if File.exist?("#{origen_root}/bin")
65
+ `chmod o-w #{origen_root}/.bin` if File.exist?("#{origen_root}/.bin")
66
+ result = false
67
+ local_gem_dir = "#{ENV['BUNDLE_PATH']}/ruby/2.1.0"
68
+ system_gem_dir = "/run/pkg/fs-ruby-/2.1.5-p273/lib/ruby/gems/2.1.0"
69
+ Bundler.with_clean_env do
70
+ if RUBY_PLATFORM == "x86_64-linux"
71
+ if Origen.site_config.gem_build_switches
72
+ Origen.site_config.gem_build_switches.each do |switches|
73
+ `bundle config build.#{switches}`
74
+ end
75
+ end
76
+ gcc_version = begin
77
+ begin
78
+ line = %x[gcc --version].split("\n").first
79
+ rescue
80
+ puts "You don't seem to have gcc available, make sure you following the Origen installation instructions:"
81
+ puts "http://origen-sdk.org/origen/latest/guides/starting/installing/"
82
+ exit 1
83
+ end
84
+ if line =~ /(\d+\.\d+\.\d+)/
85
+ $1
86
+ end
87
+ end
88
+ if gcc_version
89
+ if gcc_version < ORIGEN_MIN_GCC_VERSION
90
+ puts "Origen requires a minimum of GCC version #{ORIGEN_MIN_GCC_VERSION}, but you have #{gcc_version}."
91
+ exit 1
92
+ end
93
+ else
94
+ puts "Unable to determine gcc version, proceeding with fingers crossed..."
95
+ end
96
+ # Some gems (particularly those with C extensions that need to be built), can be hard to install reliably
97
+ # across a large user base. Initially seed the user's local gem area with the system-installed gems,
98
+ # this means that the system Ruby owner can provide an installation for these hard-to-install gems.
99
+ unless File.exist?("#{local_gem_dir}/.seeded_from_system")
100
+ puts "Installing gems that are available from the system Ruby, this can take a few minutes, please be patient..."
101
+ FileUtils.mkdir_p(local_gem_dir) unless File.exist?(local_gem_dir) # Make the full path the the local gems
102
+ FileUtils.rm_rf(local_gem_dir) # Then clear the end directory
103
+ FileUtils.cp_r(system_gem_dir, local_gem_dir)
104
+ FileUtils.touch "#{local_gem_dir}/.seeded_from_system"
105
+ end
106
+ end
107
+ result = system(cmd)
108
+ end
109
+ `chmod o-w #{ENV["BUNDLE_BIN"]}`
110
+ # Make .bat versions of all executables, Bundler should really be doing this when running
111
+ # on windows
112
+ if RUBY_PLATFORM == 'i386-mingw32'
113
+ bat_present = File.exist? "#{origen_root}/lbin/origen.bat"
114
+ Dir.glob("#{origen_root}/lbin/*").each do |bin|
115
+ unless bin =~ /.bat$/
116
+ bat = "#{bin}.bat"
117
+ unless File.exist?(bat)
118
+ File.open(bat, 'w') { |f| f.write('@"ruby.exe" "%~dpn0" %*') }
119
+ end
120
+ end
121
+ end
122
+ if !bat_present && !result
123
+ puts "Some Windows specific updates to your workspace were required, please re-run the last command"
124
+ exit 0
125
+ end
126
+ end
127
+ if result
128
+ puts
129
+ puts "The required gems have been installed, please re-run the previous command"
130
+ exit 0
131
+ else
132
+ puts
133
+ puts "If you have just updated a gem version and are now getting an error that Bundler cannot find compatible versions for it then first try running 'bundle update <gemname>'."
134
+ puts "For example if you have just changed the version of origen_core run 'bundle update origen_core'."
135
+ exit 1
136
+ end
137
+ end
138
+ else
139
+ Bundler.setup
140
+ end
141
+ end
142
+ require "bundler/setup"
143
+ require "origen"
144
+ else
145
+ $LOAD_PATH.unshift "#{File.expand_path(File.dirname(__FILE__))}/../lib"
146
+ require "origen"
147
+ end
148
+
149
+ # If this script has been invoked from within an Origen application then open
150
+ # up all commands, if not then only allow the command to create a new Origen
151
+ # application.
152
+ # Note that the Origen core workspace is now a fully fledged Origen application in
153
+ # its own right.
154
+ begin
155
+ if origen_root
156
+ require "origen/commands"
157
+ else
158
+ require "origen/commands_global"
159
+ end
160
+ ensure
161
+ if Origen.app_loaded?
162
+ Origen.app.listeners_for(:on_origen_shutdown).each do |listener|
163
+ listener.on_origen_shutdown
164
+ end
165
+ Origen.app.runner.shutdown
166
+ end
167
+ end
data/bin/rgen ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ load File.expand_path('../origen', __FILE__)
@@ -0,0 +1,141 @@
1
+ class OrigenCoreApplication < Origen::Application
2
+
3
+ self.name = "Origen Core"
4
+ self.namespace = "Origen"
5
+
6
+ config.name = "Origen Core"
7
+ config.initials = "Origen"
8
+ config.rc_url = "ssh://git@github.com:Origen-SDK/origen.git"
9
+ config.semantically_version = true
10
+ config.release_externally = true
11
+ config.gem_name = "origen"
12
+
13
+ config.production_targets = {
14
+ "1m79x" => "production",
15
+ "2m79x" => "debug",
16
+ "3m79x" => "mock.rb",
17
+ }
18
+
19
+ config.lint_test = {
20
+ # Require the lint tests to pass before allowing a release to proceed
21
+ :run_on_tag => true,
22
+ # Auto correct violations where possible whenever 'origen lint' is run
23
+ :auto_correct => true,
24
+ # Limit the testing for large legacy applications
25
+ #:level => :easy,
26
+ # Run on these directories/files by default
27
+ #:files => ["lib", "config/application.rb"],
28
+ }
29
+
30
+ #config.lsf.project = "origen core"
31
+
32
+ config.web_directory = "/proj/.web_origen/html/origen"
33
+
34
+ config.web_domain = "http://origen-sdk.org/origen"
35
+
36
+ config.pattern_prefix = "nvm"
37
+
38
+ config.pattern_header do
39
+ cc "This is a dummy pattern created by the Origen test environment"
40
+ end
41
+
42
+ # Add any directories or files not intended to be under change management control
43
+ # standard Origen files/dirs already included
44
+ # config.unmanaged_dirs = %w{dir1 dir2}
45
+ # config.unamanged_files = %w{file1 file2 *.swp}
46
+
47
+ config.output_directory do
48
+ dir = "#{Origen.root}/output/#{$top.class}"
49
+ dir.gsub!("::","_") if Origen.running_on_windows?
50
+ dir
51
+ end
52
+
53
+ config.reference_directory do
54
+ dir = "#{Origen.root}/.ref/#{$top.class}"
55
+ dir.gsub!("::","_") if Origen.running_on_windows?
56
+ dir
57
+ end
58
+
59
+ # Help Origen to find patterns based on an iterator
60
+ config.pattern_name_translator do |name|
61
+ if name == "dummy_name"
62
+ {:source => "timing", :output => "timing"}
63
+ else
64
+ name.gsub(/_b\d/, "_bx")
65
+ end
66
+ end
67
+
68
+ # By block iterator
69
+ config.pattern_iterator do |iterator|
70
+ iterator.key = :by_block
71
+
72
+ iterator.loop do |&pattern|
73
+ $nvm.blocks.each do |block|
74
+ pattern.call(block)
75
+ end
76
+ end
77
+
78
+ iterator.setup do |block|
79
+ blk = $nvm.find_block_by_id(block.id)
80
+ blk.select
81
+ blk
82
+ end
83
+
84
+ iterator.pattern_name do |name, block|
85
+ name.gsub("_bx", "_b#{block.id}")
86
+ end
87
+ end
88
+
89
+ # By setting iterator
90
+ config.pattern_iterator do |iterator|
91
+ iterator.key = :by_setting
92
+
93
+ iterator.loop do |settings, &pattern|
94
+ settings.each do |setting|
95
+ pattern.call(setting)
96
+ end
97
+ end
98
+
99
+ iterator.pattern_name do |name, setting|
100
+ name.gsub("_x", "_#{setting}")
101
+ end
102
+ end
103
+
104
+ # Ensure that all tests pass before allowing a release to continue
105
+ def validate_release
106
+ #if !system("origen specs") || !system("origen examples")
107
+ # puts "Sorry but you can't release with failing tests, please fix them and try again."
108
+ # exit 1
109
+ #else
110
+ # puts "All tests passing, proceeding with release process!"
111
+ #end
112
+ end
113
+
114
+ def before_deploy_site
115
+ Dir.chdir Origen.root do
116
+ system "origen specs -c"
117
+ system "origen examples -c"
118
+ dir = "#{Origen.root}/web/output/coverage"
119
+ FileUtils.remove_dir(dir, true) if File.exists?(dir)
120
+ system "mv #{Origen.root}/coverage #{dir}"
121
+ end
122
+ end
123
+
124
+ def after_release_email(tag, note, type, selector, options)
125
+ #begin
126
+ # deployer = Origen.app.deployer
127
+ # if deployer.running_on_cde? && deployer.user_belongs_to_origen?
128
+ # command = "origen web compile --remote --api"
129
+ # # If an external release
130
+ # if Origen.version.production?
131
+ # command += " --archive #{Origen.app.version.prefixed}"
132
+ # end
133
+ # Dir.chdir Origen.root do
134
+ # system command
135
+ # end
136
+ # end
137
+ #rescue
138
+ # Origen.log.error "Web deploy failed"
139
+ #end
140
+ end
141
+ end
@@ -0,0 +1,72 @@
1
+ # This file should be used to extend origen with application specific tasks
2
+
3
+ aliases ={
4
+
5
+ }
6
+
7
+ @command = aliases[@command] || @command
8
+
9
+ case @command
10
+
11
+ when "specs"
12
+ ARGV.unshift "spec"
13
+ require "rspec"
14
+ # For some unidentified reason Rspec does not autorun on this version
15
+ if RSpec::Core::Version::STRING && RSpec::Core::Version::STRING == "2.11.1"
16
+ RSpec::Core::Runner.run ARGV
17
+ else
18
+ require "rspec/autorun"
19
+ end
20
+ exit 0 # RSpec will exit 1 automatically if a test fails
21
+
22
+ when "examples"
23
+ $enable_testers = true if ARGV.delete("--testers")
24
+ Origen.load_application
25
+ status = 0
26
+ Dir["#{Origen.root}/examples/*.rb"].each do |example|
27
+ require example
28
+ end
29
+
30
+ if Origen.app.stats.changed_files == 0 &&
31
+ Origen.app.stats.new_files == 0 &&
32
+ Origen.app.stats.changed_patterns == 0 &&
33
+ Origen.app.stats.new_patterns == 0
34
+
35
+ Origen.app.stats.report_pass
36
+ else
37
+ Origen.app.stats.report_fail
38
+ status = 1
39
+ end
40
+ puts
41
+ exit status
42
+
43
+ when "regression"
44
+ # You must tell the regression manager up front what target will be run within
45
+ # the block
46
+ options[:targets] = %w(debug v93k jlink bdm)
47
+ Origen.regression_manager.run(options) do |options|
48
+ Origen.lsf.submit_origen_job "generate j750.list -t debug --plugin origen_core_support"
49
+ Origen.lsf.submit_origen_job "generate v93k_workout -t v93k --plugin none"
50
+ Origen.lsf.submit_origen_job "generate dummy_name port -t debug --plugin none"
51
+ Origen.lsf.submit_origen_job "generate jlink.list -t jlink --plugin none"
52
+ Origen.lsf.submit_origen_job "generate bdm.list -t bdm --plugin none"
53
+ Origen.lsf.submit_origen_job "compile templates/test/set3 -t debug --plugin none"
54
+ Origen.lsf.submit_origen_job "compile templates/test/inspections.txt.erb -t debug --plugin none"
55
+ Origen.lsf.submit_origen_job "program program -t debug --plugin none"
56
+ Origen.lsf.submit_origen_job "program program -t debug --doc --plugin none"
57
+ end
58
+ exit 0
59
+
60
+ when "make_file"
61
+ Origen.load_application
62
+ system "touch #{Origen.root}/#{ARGV.first}"
63
+ exit 0
64
+
65
+ else
66
+ @application_commands = <<-EOT
67
+ specs Run the specs (tests), -c will enable coverage
68
+ examples Run the examples, -c will enable coverage
69
+ regression Test the regression manager (runs a subset of examples)
70
+ EOT
71
+
72
+ end
@@ -0,0 +1,7 @@
1
+ # Interfaces must be required, can't autoload
2
+ require "c99/j750_interface"
3
+ require "c99/doc_interface"
4
+ # The majority of this class is defined in the support application,
5
+ # this is to test that the importing application can override and
6
+ # extend imported classes.
7
+ require "#{Origen.root}/lib/c99/nvm"
File without changes
@@ -0,0 +1,7 @@
1
+ fs-ruby-/2.1.5-p273
2
+ ds-designsync-/v6r2013x
3
+ fs-pi-/2012.3.3
4
+ gcc-/4.7.3
5
+ libxml2-/2.9.0
6
+ TWW-pkgconfig-/0.25
7
+ OSS-git-/2.3.2