origen 0.2.6 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/origen +3 -1
- data/config/boot.rb +1 -7
- data/config/commands.rb +0 -1
- data/config/version.rb +2 -2
- data/lib/c99/{j750_interface.rb → ate_interface.rb} +3 -11
- data/lib/c99/doc_interface.rb +1 -1
- data/lib/origen.rb +9 -30
- data/lib/origen/application.rb +10 -8
- data/lib/origen/application/configuration.rb +13 -26
- data/lib/origen/application/plugins.rb +122 -0
- data/lib/origen/application/plugins_manager.rb +16 -254
- data/lib/origen/application/release.rb +2 -2
- data/lib/origen/application/runner.rb +2 -4
- data/lib/origen/chips.rb +0 -0
- data/lib/origen/chips/chip.rb +0 -0
- data/lib/origen/chips/design_entry.rb +0 -0
- data/lib/origen/chips/doc_entry.rb +0 -0
- data/lib/origen/chips/note.rb +0 -0
- data/lib/origen/commands.rb +4 -44
- data/lib/origen/commands/compile.rb +1 -2
- data/lib/origen/commands/generate.rb +1 -1
- data/lib/origen/commands/interactive.rb +1 -2
- data/lib/origen/commands/plugin.rb +49 -56
- data/lib/origen/commands/program.rb +1 -1
- data/lib/origen/commands/rc.rb +2 -2
- data/lib/origen/commands/version.rb +2 -17
- data/lib/origen/commands_global.rb +3 -0
- data/lib/origen/file_handler.rb +10 -10
- data/lib/origen/generator.rb +1 -1
- data/lib/origen/generator/job.rb +1 -1
- data/lib/origen/generator/pattern.rb +2 -2
- data/lib/origen/generator/pattern_finder.rb +10 -9
- data/lib/origen/pins/pin.rb +0 -0
- data/lib/origen/regression_manager.rb +0 -0
- data/lib/origen/remote_manager.rb +2 -8
- data/lib/origen/revision_control/design_sync.rb +0 -0
- data/lib/origen/revision_control/git.rb +0 -0
- data/lib/origen/specs.rb +0 -0
- data/lib/origen/specs/checkers.rb +0 -0
- data/lib/origen/specs/creation_info.rb +0 -0
- data/lib/origen/specs/exhibit.rb +0 -0
- data/lib/origen/specs/spec.rb +0 -0
- data/lib/origen/utility.rb +0 -1
- data/lib/origen/utility/diff.rb +0 -0
- metadata +42 -119
- data/lib/origen/import_manager.rb +0 -596
- data/lib/origen/nvm.rb +0 -6
- data/lib/origen/nvm/block_array.rb +0 -72
- data/lib/origen/tester.rb +0 -56
- data/lib/origen/tester/api.rb +0 -277
- data/lib/origen/tester/bdm/bdm.rb +0 -25
- data/lib/origen/tester/doc/doc.rb +0 -226
- data/lib/origen/tester/doc/generator.rb +0 -126
- data/lib/origen/tester/doc/generator/flow.rb +0 -71
- data/lib/origen/tester/doc/generator/flow_line.rb +0 -203
- data/lib/origen/tester/doc/generator/test.rb +0 -68
- data/lib/origen/tester/doc/generator/test_group.rb +0 -66
- data/lib/origen/tester/doc/generator/tests.rb +0 -47
- data/lib/origen/tester/doc/model.rb +0 -162
- data/lib/origen/tester/generator.rb +0 -271
- data/lib/origen/tester/generator/flow_control_api.rb +0 -606
- data/lib/origen/tester/generator/identity_map.rb +0 -25
- data/lib/origen/tester/generator/placeholder.rb +0 -13
- data/lib/origen/tester/generator/test_numberer.rb +0 -25
- data/lib/origen/tester/interface.rb +0 -154
- data/lib/origen/tester/j750/files.rb +0 -45
- data/lib/origen/tester/j750/generator.rb +0 -203
- data/lib/origen/tester/j750/generator/flow.rb +0 -123
- data/lib/origen/tester/j750/generator/flow_line.rb +0 -288
- data/lib/origen/tester/j750/generator/patgroup.rb +0 -111
- data/lib/origen/tester/j750/generator/patgroups.rb +0 -41
- data/lib/origen/tester/j750/generator/patset.rb +0 -111
- data/lib/origen/tester/j750/generator/patsets.rb +0 -41
- data/lib/origen/tester/j750/generator/templates/flow.txt.erb +0 -9
- data/lib/origen/tester/j750/generator/templates/instances.txt.erb +0 -16
- data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +0 -8
- data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +0 -10
- data/lib/origen/tester/j750/generator/test_instance.rb +0 -846
- data/lib/origen/tester/j750/generator/test_instance_group.rb +0 -60
- data/lib/origen/tester/j750/generator/test_instances.rb +0 -182
- data/lib/origen/tester/j750/j750.rb +0 -845
- data/lib/origen/tester/j750/j750_hpt.rb +0 -35
- data/lib/origen/tester/j750/parser.rb +0 -104
- data/lib/origen/tester/j750/parser/ac_spec.rb +0 -11
- data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/j750/parser/dc_spec.rb +0 -36
- data/lib/origen/tester/j750/parser/dc_specs.rb +0 -50
- data/lib/origen/tester/j750/parser/descriptions.rb +0 -340
- data/lib/origen/tester/j750/parser/flow.rb +0 -111
- data/lib/origen/tester/j750/parser/flow_line.rb +0 -207
- data/lib/origen/tester/j750/parser/flows.rb +0 -23
- data/lib/origen/tester/j750/parser/pattern_set.rb +0 -94
- data/lib/origen/tester/j750/parser/pattern_sets.rb +0 -33
- data/lib/origen/tester/j750/parser/test_instance.rb +0 -322
- data/lib/origen/tester/j750/parser/test_instances.rb +0 -26
- data/lib/origen/tester/j750/parser/timeset.rb +0 -15
- data/lib/origen/tester/j750/parser/timesets.rb +0 -0
- data/lib/origen/tester/jlink/jlink.rb +0 -33
- data/lib/origen/tester/parser.rb +0 -24
- data/lib/origen/tester/parser/description_lookup.rb +0 -64
- data/lib/origen/tester/parser/searchable_array.rb +0 -32
- data/lib/origen/tester/parser/searchable_hash.rb +0 -32
- data/lib/origen/tester/time.rb +0 -338
- data/lib/origen/tester/timing.rb +0 -253
- data/lib/origen/tester/ultraflex/files.rb +0 -45
- data/lib/origen/tester/ultraflex/generator.rb +0 -200
- data/lib/origen/tester/ultraflex/generator/flow.rb +0 -119
- data/lib/origen/tester/ultraflex/generator/flow_line.rb +0 -269
- data/lib/origen/tester/ultraflex/generator/patgroup.rb +0 -111
- data/lib/origen/tester/ultraflex/generator/patgroups.rb +0 -41
- data/lib/origen/tester/ultraflex/generator/patset.rb +0 -111
- data/lib/origen/tester/ultraflex/generator/patsets.rb +0 -41
- data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +0 -9
- data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +0 -16
- data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +0 -8
- data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +0 -10
- data/lib/origen/tester/ultraflex/generator/test_instance.rb +0 -622
- data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +0 -60
- data/lib/origen/tester/ultraflex/generator/test_instances.rb +0 -174
- data/lib/origen/tester/ultraflex/parser.rb +0 -104
- data/lib/origen/tester/ultraflex/parser/ac_spec.rb +0 -11
- data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/ultraflex/parser/dc_spec.rb +0 -36
- data/lib/origen/tester/ultraflex/parser/dc_specs.rb +0 -50
- data/lib/origen/tester/ultraflex/parser/descriptions.rb +0 -342
- data/lib/origen/tester/ultraflex/parser/flow.rb +0 -111
- data/lib/origen/tester/ultraflex/parser/flow_line.rb +0 -207
- data/lib/origen/tester/ultraflex/parser/flows.rb +0 -23
- data/lib/origen/tester/ultraflex/parser/pattern_set.rb +0 -94
- data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +0 -33
- data/lib/origen/tester/ultraflex/parser/test_instance.rb +0 -262
- data/lib/origen/tester/ultraflex/parser/test_instances.rb +0 -26
- data/lib/origen/tester/ultraflex/parser/timeset.rb +0 -15
- data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
- data/lib/origen/tester/ultraflex/ultraflex.rb +0 -759
- data/lib/origen/tester/v93k/generator.rb +0 -80
- data/lib/origen/tester/v93k/generator/flow.rb +0 -63
- data/lib/origen/tester/v93k/generator/flow_node.rb +0 -17
- data/lib/origen/tester/v93k/generator/flow_node/print.rb +0 -10
- data/lib/origen/tester/v93k/generator/pattern.rb +0 -16
- data/lib/origen/tester/v93k/generator/pattern_master.rb +0 -54
- data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +0 -6
- data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +0 -11
- data/lib/origen/tester/v93k/generator/templates/template.flow.erb +0 -121
- data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +0 -9
- data/lib/origen/tester/v93k/generator/test_function.rb +0 -103
- data/lib/origen/tester/v93k/generator/test_functions.rb +0 -79
- data/lib/origen/tester/v93k/generator/test_method.rb +0 -46
- data/lib/origen/tester/v93k/generator/test_methods.rb +0 -75
- data/lib/origen/tester/v93k/generator/test_suite.rb +0 -54
- data/lib/origen/tester/v93k/generator/test_suites.rb +0 -65
- data/lib/origen/tester/v93k/v93k.rb +0 -420
- data/lib/origen/tester/vector.rb +0 -86
- data/lib/origen/tester/vector_generator.rb +0 -637
- data/lib/origen/tester/vector_pipeline.rb +0 -150
- data/lib/origen/utility/design_sync.rb +0 -494
- data/lib/origen/version_checker.rb +0 -117
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cf3140f29f89f5990d3fd1d9280f7ee8d3f807a
|
4
|
+
data.tar.gz: 53d58d539aa2f2469f90f93a9964a01f77564ec4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e6de38d9c7d045398861ca6cc6ce313ed97808677ce92d49657f1eee7ffdf8e563dcc9a97ce17f9c4c7327dc0476c734f5b195e4692629ab2ff2af438d8e505
|
7
|
+
data.tar.gz: 8a1e4ea8472fbc7bd32fe9b3b92c6baf0b1e1800101cb775955e40953fc8062abe7580eaf128c9be1f8fc9598a1a55d57b2e50c96791d59ad0941af6660784e2
|
data/bin/origen
CHANGED
@@ -207,7 +207,9 @@ rescue Exception => e
|
|
207
207
|
e.backtrace.each do |line|
|
208
208
|
path = Pathname.new(line)
|
209
209
|
if path.absolute?
|
210
|
-
|
210
|
+
if Origen.log.level == :verbose || (line =~ /^#{Origen.root}/ && line !~ /^#{Origen.root}\/lbin/)
|
211
|
+
puts line
|
212
|
+
end
|
211
213
|
else
|
212
214
|
if Origen.log.level == :verbose
|
213
215
|
puts line
|
data/config/boot.rb
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
# Interfaces must be required, can't autoload
|
2
|
-
require "c99/
|
2
|
+
require "c99/ate_interface"
|
3
3
|
require "c99/doc_interface"
|
4
4
|
# The majority of this class is defined in the support application,
|
5
5
|
# this is to test that the importing application can override and
|
6
6
|
# extend imported classes.
|
7
7
|
require_relative "../lib/c99/nvm"
|
8
|
-
|
9
|
-
# Dummy definition to allow Origen tests to run until the Testers plugin is available
|
10
|
-
module Testers
|
11
|
-
class J750
|
12
|
-
end
|
13
|
-
end
|
data/config/commands.rb
CHANGED
data/config/version.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module C99
|
2
|
-
|
2
|
+
class ATEInterface
|
3
|
+
include OrigenTesters::ProgramGenerators
|
4
|
+
|
3
5
|
# Options passed to Flow.create and Library.create will be passed in here, use as
|
4
6
|
# desired to configure your interface
|
5
7
|
def initialize(_options = {})
|
@@ -72,14 +74,4 @@ module C99
|
|
72
74
|
patsets.add("#{name}_pset", pattern: "#{name}.PAT")
|
73
75
|
end
|
74
76
|
end
|
75
|
-
|
76
|
-
class J750Interface
|
77
|
-
include J750BaseInterface
|
78
|
-
include Origen::Tester::J750::Generator
|
79
|
-
end
|
80
|
-
|
81
|
-
# class TestersJ750Interface
|
82
|
-
# include J750BaseInterface
|
83
|
-
# include Testers::J750::Generator
|
84
|
-
# end
|
85
77
|
end
|
data/lib/c99/doc_interface.rb
CHANGED
data/lib/origen.rb
CHANGED
@@ -13,10 +13,8 @@ require 'origen/top_level'
|
|
13
13
|
require 'origen/model'
|
14
14
|
require 'origen/ruby_version_check'
|
15
15
|
require 'origen/application'
|
16
|
-
require 'origen/import_manager'
|
17
16
|
require 'origen/remote_manager'
|
18
17
|
require 'origen/utility'
|
19
|
-
require 'origen/version_checker'
|
20
18
|
require 'origen/logger_methods'
|
21
19
|
require 'option_parser/optparse'
|
22
20
|
require 'bundler'
|
@@ -27,11 +25,9 @@ module Origen
|
|
27
25
|
autoload :Generator, 'origen/generator'
|
28
26
|
autoload :Pins, 'origen/pins'
|
29
27
|
autoload :Registers, 'origen/registers'
|
30
|
-
autoload :Tester, 'origen/tester'
|
31
28
|
autoload :Users, 'origen/users'
|
32
29
|
autoload :FileHandler, 'origen/file_handler'
|
33
30
|
autoload :RegressionManager, 'origen/regression_manager'
|
34
|
-
autoload :NVM, 'origen/nvm'
|
35
31
|
autoload :Location, 'origen/location'
|
36
32
|
autoload :VersionString, 'origen/version_string'
|
37
33
|
autoload :Mode, 'origen/mode'
|
@@ -95,16 +91,9 @@ module Origen
|
|
95
91
|
@plugins = nil
|
96
92
|
end
|
97
93
|
|
98
|
-
# Returns an array containing the application instances of all plugins
|
99
94
|
def plugins
|
100
|
-
|
101
|
-
|
102
|
-
plugins = []
|
103
|
-
Origen._applications_lookup[:name].each do |_name, app|
|
104
|
-
plugins << app unless app == top
|
105
|
-
end
|
106
|
-
plugins
|
107
|
-
end
|
95
|
+
Origen.deprecate 'Origen.plugins is deprecated, use Origen.app.plugins instead'
|
96
|
+
Origen.app.plugins
|
108
97
|
end
|
109
98
|
|
110
99
|
def app_loaded?
|
@@ -317,11 +306,6 @@ module Origen
|
|
317
306
|
@with_boot_environment = false
|
318
307
|
end
|
319
308
|
|
320
|
-
def with_disable_origen_version_check(*args, &block)
|
321
|
-
version_checker.with_disable_origen_version_check(*args, &block)
|
322
|
-
end
|
323
|
-
alias_method :disable_origen_version_check, :with_disable_origen_version_check
|
324
|
-
|
325
309
|
# This is the application-facing API for implementing custom callbacks,
|
326
310
|
# the top-level application, all plugin application instances, and any
|
327
311
|
# application objects that include the Origen::Callbacks module will be
|
@@ -367,12 +351,14 @@ module Origen
|
|
367
351
|
end
|
368
352
|
|
369
353
|
def import_manager
|
370
|
-
|
354
|
+
Origen.deprecated 'Origen.import_manager is deprecated, use Origen.app.plugins instead'
|
355
|
+
app.plugins
|
371
356
|
end
|
372
357
|
alias_method :imports_manager, :import_manager
|
373
358
|
|
374
359
|
def plugins_manager
|
375
|
-
|
360
|
+
Origen.deprecated 'Origen.plugins_manager and Origen.current_plugin are deprecated, use Origen.app.plugins instead'
|
361
|
+
app.plugins
|
376
362
|
end
|
377
363
|
alias_method :plugin_manager, :plugins_manager
|
378
364
|
alias_method :current_plugin, :plugins_manager
|
@@ -415,7 +401,7 @@ module Origen
|
|
415
401
|
#
|
416
402
|
# In most cases this should never need to be called directly and will be called
|
417
403
|
# automatically the first time the application is referenced via Origen.app
|
418
|
-
def load_application(
|
404
|
+
def load_application(options = {})
|
419
405
|
@application ||= begin
|
420
406
|
# This flag is set so that when a thread starts with no app it remains with no app. This
|
421
407
|
# was an issue when building a new app with the fetch command and when the thread did a
|
@@ -434,9 +420,8 @@ module Origen
|
|
434
420
|
Bundler.require(:default)
|
435
421
|
end
|
436
422
|
if @with_boot_environment
|
437
|
-
@application.
|
423
|
+
@application.plugins.disable_current
|
438
424
|
else
|
439
|
-
Origen.import_manager.require!
|
440
425
|
Origen.remote_manager.require!
|
441
426
|
end
|
442
427
|
boot = File.join(root, 'config', 'boot.rb')
|
@@ -445,9 +430,8 @@ module Origen
|
|
445
430
|
require env if File.exist?(env)
|
446
431
|
dev = File.join(root, 'config', 'development.rb')
|
447
432
|
require dev if File.exist?(dev)
|
448
|
-
version_checker.check! if check_version
|
449
433
|
validate_origen_dev_configuration!
|
450
|
-
([@application] + Origen.plugins).each(&:on_loaded)
|
434
|
+
([@application] + Origen.app.plugins).each(&:on_loaded)
|
451
435
|
@application_loaded = true
|
452
436
|
@application
|
453
437
|
end
|
@@ -457,11 +441,6 @@ module Origen
|
|
457
441
|
@launch_time ||= time_now
|
458
442
|
end
|
459
443
|
|
460
|
-
# Returns an instance of Origen::VersionChecker
|
461
|
-
def version_checker
|
462
|
-
@version_checker ||= VersionChecker.new
|
463
|
-
end
|
464
|
-
|
465
444
|
# Returns the full path to the Origen core top-level directory
|
466
445
|
def top
|
467
446
|
@origen_top ||= Pathname.new(File.dirname(__FILE__)).parent
|
data/lib/origen/application.rb
CHANGED
@@ -10,6 +10,7 @@ module Origen
|
|
10
10
|
autoload :Target, 'origen/application/target'
|
11
11
|
autoload :Environment, 'origen/application/environment'
|
12
12
|
autoload :PluginsManager, 'origen/application/plugins_manager'
|
13
|
+
autoload :Plugins, 'origen/application/plugins'
|
13
14
|
autoload :LSF, 'origen/application/lsf'
|
14
15
|
autoload :Runner, 'origen/application/runner'
|
15
16
|
autoload :ConfigurationManager, 'origen/application/configuration_manager'
|
@@ -201,11 +202,7 @@ module Origen
|
|
201
202
|
# Returns true if the given application instance is
|
202
203
|
# the current plugin
|
203
204
|
def current_plugin?
|
204
|
-
|
205
|
-
Origen.current_plugin.instance == self
|
206
|
-
else
|
207
|
-
false
|
208
|
-
end
|
205
|
+
Origen.app.plugins.current == self
|
209
206
|
end
|
210
207
|
|
211
208
|
# Returns the current top-level object (the DUT)
|
@@ -420,8 +417,13 @@ module Origen
|
|
420
417
|
(Origen.app.config.gem_name || name).to_s.underscore.symbolize
|
421
418
|
end
|
422
419
|
|
420
|
+
def plugins
|
421
|
+
@plugins ||= Plugins.new
|
422
|
+
end
|
423
|
+
|
423
424
|
def plugins_manager
|
424
|
-
|
425
|
+
Origen.deprecated 'Origen.app.plugins_manager and Origen.app.current_plugin are deprecated, use Origen.app.plugins instead'
|
426
|
+
plugins
|
425
427
|
end
|
426
428
|
alias_method :plugin_manager, :plugins_manager
|
427
429
|
alias_method :current_plugin, :plugins_manager
|
@@ -505,7 +507,7 @@ module Origen
|
|
505
507
|
end
|
506
508
|
|
507
509
|
def callback_listeners
|
508
|
-
current = Origen.
|
510
|
+
current = Origen.app.plugins.current
|
509
511
|
applications = [self]
|
510
512
|
applications << current if current
|
511
513
|
applications + instantiated_callback_listeners
|
@@ -664,7 +666,7 @@ module Origen
|
|
664
666
|
listeners_for(:on_load_target).each(&:on_load_target)
|
665
667
|
end
|
666
668
|
listeners_for(:after_load_target).each(&:after_load_target)
|
667
|
-
Origen.
|
669
|
+
Origen.app.plugins.validate_production_status
|
668
670
|
# @target_instantiated = true
|
669
671
|
end
|
670
672
|
|
@@ -6,8 +6,7 @@ module Origen
|
|
6
6
|
# Returns the configuration's application instance
|
7
7
|
attr_reader :app
|
8
8
|
|
9
|
-
attr_accessor :name, :initials, :instructions,
|
10
|
-
:min_required_origen_version, :max_required_origen_version,
|
9
|
+
attr_accessor :name, :initials, :instructions,
|
11
10
|
:history_file, :release_directory, :release_email_subject,
|
12
11
|
:production_targets, :mode,
|
13
12
|
:vault, :output_directory, :reference_directory,
|
@@ -17,7 +16,7 @@ module Origen
|
|
17
16
|
:test_program_output_directory, :erb_trim_mode, :test_program_source_directory,
|
18
17
|
:test_program_template_directory, :referenced_pattern_list, :program_prefix,
|
19
18
|
:copy_command, :diff_command, :compile_only_dot_erb_files, :web_directory,
|
20
|
-
:web_domain,
|
19
|
+
:web_domain,
|
21
20
|
:strict_errors, :unmanaged_dirs, :unmanaged_files, :remotes,
|
22
21
|
:external_app_dirs, :lint_test, :shared, :yammer_group, :rc_url, :rc_workflow,
|
23
22
|
:user_aliases, :release_externally, :gem_name, :disqus_shortname
|
@@ -40,7 +39,7 @@ module Origen
|
|
40
39
|
# can be added here
|
41
40
|
ATTRS_THAT_ACCEPT_A_BLOCK = ATTRS_THAT_DEPEND_ON_TARGET +
|
42
41
|
[:release_instructions, :history_file, :log_directory, :copy_command,
|
43
|
-
:diff_command, :
|
42
|
+
:diff_command, :remotes,
|
44
43
|
:external_app_dirs
|
45
44
|
]
|
46
45
|
|
@@ -53,21 +52,9 @@ module Origen
|
|
53
52
|
]
|
54
53
|
|
55
54
|
def log_deprecations
|
56
|
-
unless imports.empty?
|
57
|
-
|
58
|
-
end
|
59
|
-
unless imports_dev.empty?
|
60
|
-
Origen.deprecate "App #{app.name} uses config.imports_dev this will be removed in Origen V3 and a Gemfile/.gemspec should be used instead"
|
61
|
-
end
|
62
|
-
if required_origen_version
|
63
|
-
Origen.deprecate "App #{app.name} uses config.required_origen_version this will be removed in Origen V3 and a Gemfile/.gemspec should be used instead"
|
64
|
-
end
|
65
|
-
if min_required_origen_version
|
66
|
-
Origen.deprecate "App #{app.name} uses config.min_required_origen_version this will be removed in Origen V3 and a Gemfile/.gemspec should be used instead"
|
67
|
-
end
|
68
|
-
if max_required_origen_version
|
69
|
-
Origen.deprecate "App #{app.name} uses config.max_required_origen_version this will be removed in Origen V3 and a Gemfile/.gemspec should be used instead"
|
70
|
-
end
|
55
|
+
# unless imports.empty?
|
56
|
+
# Origen.deprecate "App #{app.name} uses config.imports this will be removed in Origen V3 and a Gemfile/.gemspec should be used instead"
|
57
|
+
# end
|
71
58
|
end
|
72
59
|
|
73
60
|
def initialize(app)
|
@@ -104,10 +91,10 @@ module Origen
|
|
104
91
|
end
|
105
92
|
|
106
93
|
# This defines an enhanced accessor for these attributes that allows them to be assigned
|
107
|
-
# to an
|
94
|
+
# to an anonymous function to calculate the value based on some property of the target
|
108
95
|
# objects.
|
109
96
|
#
|
110
|
-
# Without this the objects
|
97
|
+
# Without this the objects from the target could not be referenced in config/application.rb
|
111
98
|
# because they don't exist yet, for example this will not work because $dut has not yet
|
112
99
|
# been instantiated:
|
113
100
|
# # config/application.rb
|
@@ -136,8 +123,8 @@ module Origen
|
|
136
123
|
instance_variable_set("@#{name}".to_sym, block)
|
137
124
|
else
|
138
125
|
if override && ATTRS_THAT_CURRENT_PLUGIN_CAN_OVERRIDE.include?(name) &&
|
139
|
-
app.current? && Origen.
|
140
|
-
var = Origen.
|
126
|
+
app.current? && Origen.app.plugins.current
|
127
|
+
var = Origen.app.plugins.current.config.send(name, override: false)
|
141
128
|
end
|
142
129
|
var ||= instance_variable_get("@#{name}".to_sym)
|
143
130
|
if var.respond_to?('call')
|
@@ -160,8 +147,8 @@ module Origen
|
|
160
147
|
|
161
148
|
(ATTRS_THAT_CURRENT_PLUGIN_CAN_OVERRIDE - ATTRS_THAT_ACCEPT_A_BLOCK).each do |name|
|
162
149
|
if override && ATTRS_THAT_CURRENT_PLUGIN_CAN_OVERRIDE.include?(name) &&
|
163
|
-
app.current? && Origen.
|
164
|
-
var = Origen.
|
150
|
+
app.current? && Origen.app.plugins.current
|
151
|
+
var = Origen.app.plugins.current.config.send(name, override: false)
|
165
152
|
end
|
166
153
|
var || instance_variable_get("@#{name}".to_sym)
|
167
154
|
end
|
@@ -199,7 +186,7 @@ module Origen
|
|
199
186
|
# user can be prompted to upgrade
|
200
187
|
def method_missing(method, *_args, &_block)
|
201
188
|
method = method.to_s.sub('=', '')
|
202
|
-
|
189
|
+
Origen.log.warning "WARNING - unknown configuration attribute: #{method}"
|
203
190
|
end
|
204
191
|
end
|
205
192
|
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
module Origen
|
2
|
+
class Application
|
3
|
+
# Provides an API for working with the application's plugins
|
4
|
+
#
|
5
|
+
# An instance of this class is instantiated as Origen.app.plugins
|
6
|
+
class Plugins < ::Array
|
7
|
+
def initialize
|
8
|
+
@plugins ||= begin
|
9
|
+
top = Origen.app
|
10
|
+
Origen._applications_lookup[:name].each do |_name, app|
|
11
|
+
self << app unless app == top
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Will raise an error if any plugins are currently imported from a path reference
|
17
|
+
# in the Gemfile
|
18
|
+
def validate_production_status(force = false)
|
19
|
+
if Origen.mode.production? || force
|
20
|
+
if File.exist?("#{Origen.root}/Gemfile")
|
21
|
+
File.readlines("#{Origen.root}/Gemfile").each do |line|
|
22
|
+
# http://rubular.com/r/yNGDGB6M2r
|
23
|
+
if line =~ /^\s*gem\s+(("|')\w+("|')),.*(:path\s*=>|path:)/
|
24
|
+
fail "The following gem is defined as a path in your Gemfile, but that is not allowed in production: #{Regexp.last_match[1]}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Returns an array of symbols that represent the names of all plugins
|
32
|
+
def names
|
33
|
+
map(&:name)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns the current plugin's application instance
|
37
|
+
def current
|
38
|
+
return nil if @disabled
|
39
|
+
name = @temporary || @current ||= Origen.app.session.origen_core[:default_plugin]
|
40
|
+
find { |p| p.name.to_sym == name } if name
|
41
|
+
end
|
42
|
+
|
43
|
+
def current=(name)
|
44
|
+
name = name.to_sym if name
|
45
|
+
Origen.app.session.origen_core[:default_plugin] = name
|
46
|
+
if name == :none
|
47
|
+
@current = nil
|
48
|
+
else
|
49
|
+
@current = name
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def temporary=(name)
|
54
|
+
name = name.to_sym if name
|
55
|
+
if name == :none
|
56
|
+
@temporary = nil
|
57
|
+
else
|
58
|
+
@temporary = name
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Temporarily set the current plugin to nil
|
63
|
+
def disable_current
|
64
|
+
@disabled = true
|
65
|
+
if block_given?
|
66
|
+
yield
|
67
|
+
@disabled = false
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Restore the current plugin after an earlier disable
|
72
|
+
def enable_current
|
73
|
+
@disabled = false
|
74
|
+
end
|
75
|
+
|
76
|
+
# @deprecated
|
77
|
+
def default=(name)
|
78
|
+
Origen.deprecated 'Origen.current_plugin.default= is deprecated, use Origen.app.plugins.current= instead'
|
79
|
+
self.current = name
|
80
|
+
end
|
81
|
+
|
82
|
+
# @deprecated
|
83
|
+
def name
|
84
|
+
Origen.deprecated 'Origen.current_plugin.name is deprecated, use Origen.app.plugins.current.name instead'
|
85
|
+
current.name if current
|
86
|
+
end
|
87
|
+
|
88
|
+
# @deprecated
|
89
|
+
def instance
|
90
|
+
Origen.deprecated 'Origen.current_plugin.instance is deprecated, use Origen.app.plugins.current instead'
|
91
|
+
current
|
92
|
+
end
|
93
|
+
|
94
|
+
# @deprecated
|
95
|
+
def default
|
96
|
+
Origen.deprecated 'Origen.current_plugin.default is deprecated, use Origen.app.plugins.current instead'
|
97
|
+
current
|
98
|
+
end
|
99
|
+
|
100
|
+
def shared_commands
|
101
|
+
[Origen.app, self].flatten.map do |plugin|
|
102
|
+
shared = plugin.config.shared || {}
|
103
|
+
if shared[:command_launcher]
|
104
|
+
"#{plugin.root}/#{shared[:command_launcher]}"
|
105
|
+
end
|
106
|
+
end.compact
|
107
|
+
end
|
108
|
+
|
109
|
+
# Return the plugin name if the path specified is from that plugin
|
110
|
+
def plugin_name_from_path(path)
|
111
|
+
path = Pathname.new(path).expand_path.cleanpath
|
112
|
+
each do |plugin|
|
113
|
+
if path.to_s =~ /^#{plugin.root}/
|
114
|
+
return plugin.name
|
115
|
+
end
|
116
|
+
end
|
117
|
+
nil
|
118
|
+
end
|
119
|
+
alias_method :path_within_a_plugin, :plugin_name_from_path
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|