Module: Magica

Defined in:
lib/magica.rb,
lib/magica/dsl.rb,
lib/magica/magica.rb,
lib/magica/builder.rb,
lib/magica/command.rb,
lib/magica/version.rb,
lib/magica/toolchain.rb,
lib/magica/application.rb,
lib/magica/commands/linker.rb,
lib/magica/commands/compiler.rb

Defined Under Namespace

Modules: DSL Classes: Application, Builder, Command, Toolchain

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_toolchainObject

Returns the value of attribute default_toolchain.



3
4
5
# File 'lib/magica/magica.rb', line 3

def default_toolchain
  @default_toolchain
end

.toolchain_paramsObject

Returns the value of attribute toolchain_params.



3
4
5
# File 'lib/magica/magica.rb', line 3

def toolchain_params
  @toolchain_params
end

Class Method Details

.default_compile_taskObject



16
17
18
19
20
21
22
23
24
25
# File 'lib/magica/magica.rb', line 16

def default_compile_task
  proc { |options|
    FileUtils.rm_r(@dest, force: true) if options[:clean]

    objects = objfile(@sources)
    @sources.each { |source| compile source }

    link exefile("#{@dest}/#{@name}"), objects
  }
end

.each_target(&block) ⇒ Object



9
10
11
12
13
14
# File 'lib/magica/magica.rb', line 9

def each_target(&block)
  return to_enum(:each_target) if block.nil?
  @targets.each do |key, target|
    target.instance_eval(&block)
  end
end

.targetsObject



5
6
7
# File 'lib/magica/magica.rb', line 5

def targets
  @targets ||= {}
end