Sha256: a1b1e9782fc569336ef960e542921ce75bbc59916706182efe4fce00ab0e42ce

Contents?: true

Size: 1.95 KB

Versions: 12

Compression:

Stored size: 1.95 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
        Origen.log.info "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

12 entries across 12 versions & 1 rubygems

Version Path
origen_testers-0.31.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.30.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.21.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.20.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.19.3 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.19.2 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.19.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.18.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.17.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.16.1 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.16.0 lib/origen_testers/origen_ext/generator.rb
origen_testers-0.15.0 lib/origen_testers/origen_ext/generator.rb