Class: Rake::Delphi::Project

Inherits:
Task
  • Object
show all
Defined in:
lib/rake/delphi/project.rb

Instance Attribute Summary collapse

Attributes inherited from Task

#logger

Instance Method Summary collapse

Methods inherited from Task

#execute, #execute_base, #initialize_base, #out, #shortname, #trace?

Constructor Details

#initialize(name, app) ⇒ Project

Returns a new instance of Project.



16
17
18
19
20
21
22
23
# File 'lib/rake/delphi/project.rb', line 16

def initialize(name, app)
    super
    initvars
    @dcc = application.define_task(Dcc32Task, shortname + ':dcc32')
    @libs = LibsTask.define('all-delphi-libs', application)
    @level = 1
    enhance([@libs, @dcc])
end

Instance Attribute Details

#propertiesObject

Returns the value of attribute properties.



14
15
16
# File 'lib/rake/delphi/project.rb', line 14

def properties
  @properties
end

Instance Method Details

#[](key) ⇒ Object



62
63
64
# File 'lib/rake/delphi/project.rb', line 62

def [](key)
    return @properties[key]
end

#[]=(key, value) ⇒ Object



58
59
60
# File 'lib/rake/delphi/project.rb', line 58

def []=(key, value)
    @properties[key.to_sym] = value
end

#init(module_name, rake_file, vars, level = 1) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/rake/delphi/project.rb', line 41

def init(module_name, rake_file, vars, level = 1)
    @level = level
    module_name = module_name.dup.pop.to_s
    self[:projectlabel] = eval("#{module_name}::PROJECT_NAME")
    projectfile = eval("#{module_name}::PROJECT_FILE")
    self[:projectfile] = File.dirname2(rake_file) + File.separator +  projectfile
    self[:sourcename] = File.dirname2(rake_file)
    @cdir = File.dirname(rake_file)
    self[:systempath] = @cdir + '/' + projectfile
    self[:altercfg].prepend(self[:sourcename] + '/') if self[:altercfg]
    [:version, :bin, :build, :dcu, :alldebuginfo, :map, :defines, :releaseCandidate].each do |k|
        self[k] = vars[k] if vars.has_key?(k)
    end if vars

    @dcc.init(@properties)
end

#init_libsObject



35
36
37
38
39
# File 'lib/rake/delphi/project.rb', line 35

def init_libs
    self[:includepaths] = ['.'] unless self[:includepaths]
    self[:includepaths] |= @libs.libs_relative(@level)
    @dcc.init_libs(self[:includepaths])
end

#initvarsObject



25
26
27
28
29
30
31
32
33
# File 'lib/rake/delphi/project.rb', line 25

def initvars
    @properties = {
        :build => true,
        :warnings => false,
        :hints => false,
        :includepaths => nil
    }
    @cdir = ''
end