Class: IRPack::Rake::GenerateExeTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/irpack/rake/generateexetask.rb

Overview

Define task to generate executable described by IRPack::Specification.

Example:

require 'irpack/rake/generateexetask'

exe_spec = IRPack::Specification.new do |s|
  s.output_file      = 'example.exe'
  s.entry_file       = 'bin/main.rb'
  s.files            = Rake::Filelist['lib/**/*.rb']
  s.target           = :exe
  s.embed_stdlibs    = true
  s.embed_assemblies = true
  s.compress         = true
end

IRPack::Rake::GenerateExeTask.new(exe_spec) do |t|
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exe_spec, name = :exe) ⇒ GenerateExeTask

Create tasks that generates exe file. Automatically define the gem if a block is given. If no block is supplied, then define needs to be called to define the task.



63
64
65
66
67
68
69
70
71
# File 'lib/irpack/rake/generateexetask.rb', line 63

def initialize(exe_spec, name=:exe)
  @defined  = false
  @name     = name
  @exe_spec = exe_spec
  if block_given? then
    yield self
    define
  end
end

Instance Attribute Details

#exe_specObject

Spec to generate executable.



57
58
59
# File 'lib/irpack/rake/generateexetask.rb', line 57

def exe_spec
  @exe_spec
end

#nameObject

Task name. default is exe.



55
56
57
# File 'lib/irpack/rake/generateexetask.rb', line 55

def name
  @name
end

Instance Method Details

#defineObject

Create rake tasks.

Raises:

  • (ArgumentError)


74
75
76
77
78
79
80
81
82
83
84
# File 'lib/irpack/rake/generateexetask.rb', line 74

def define
  raise ArgumentError, "No output_file is specified" unless @exe_spec.output_file
  raise ArgumentError, "No entry_file is specified" unless @exe_spec.entry_file
  output_file = @exe_spec.output_file
  sources = @exe_spec.map_files.values.to_a
  desc "Generate #{File.basename(output_file)}"
  task @name => [output_file]
  file output_file => sources do
    IRPack.pack(@exe_spec)
  end
end