Sha256: e8d7777fe6da0d3606938a3d00c8ef93262728f693807d70f93740ee8c81ed80

Contents?: true

Size: 1.93 KB

Versions: 34

Compression:

Stored size: 1.93 KB

Contents

# This shim is temporary to help NXP transition to Origen from
# our original internal version (RGen)
if defined? RGen::ORIGENTRANSITION
  require 'rgen/generator'
else
  require 'origen/generator'
end
module Origen
  class Generator
    include Comparator

    # Makes more sense for this plugin to own this method now
    def generate_program(file, options)
      Origen.file_handler.resolve_files(file, ignore_with_prefix: '_', default_dir: "#{Origen.root}/program") do |path|
        Origen.file_handler.current_file = path
        j = Job.new(path, options)
        j.pattern = path
        j.run
      end
      Origen.interface.write_files(options)
      unless options[:quiet] || !Origen.interface.write?
        if options[:referenced_pattern_list]
          file = "#{Origen.root}/list/#{options[:referenced_pattern_list]}"
        else
          file = Origen.config.referenced_pattern_list
        end
        puts "Referenced pattern list written to: #{Pathname.new(file).relative_path_from(Pathname.pwd)}"
        dir = Pathname.new(file).dirname
        FileUtils.mkdir_p(dir) unless dir.exist?
        File.open(file, 'w') do |f|
          pats = Origen.interface.all_pattern_references.map do |name, refs|
            refs[:main][:all] + refs[:main][:origen]
          end.flatten.uniq.sort
          unless pats.empty?
            f.puts '# Main patterns'
            pats.each { |p| f.puts p }
            f.puts
          end

          pats = Origen.interface.all_pattern_references.map do |name, refs|
            refs[:subroutine][:all] + refs[:subroutine][:origen]
          end.flatten.uniq.sort
          unless pats.empty?
            f.puts '# Subroutine patterns'
            pats.each { |p| f.puts p }
          end
        end
        ref_file = File.join(Origen.file_handler.reference_directory, Pathname.new(file).basename)
        check_for_changes(file, ref_file)
      end
      Origen.interface.on_program_completion(options)
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
origen_testers-0.14.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.13.1 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.13.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.12.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.11.1 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.11.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.9 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.8 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.7 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.6 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.5 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.4 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.3 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.2 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.1 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.9.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.8.13 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.8.11 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.8.8 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.8.7 lib/origen_testers/origen_ext/generator.rb