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, #needed=, #needed?, #out, #reenable_chain, #shortname, #trace?

Constructor Details

#initialize(name, app) ⇒ Project

Returns a new instance of Project.



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

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

Instance Attribute Details

#propertiesObject

Returns the value of attribute properties.



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

def properties
  @properties
end

Instance Method Details

#[](key) ⇒ Object



64
65
66
# File 'lib/rake/delphi/project.rb', line 64

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

#[]=(key, value) ⇒ Object



60
61
62
# File 'lib/rake/delphi/project.rb', line 60

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

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



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

def init(module_name, rake_file, vars, level = 1)
    @level = level
    module_name = module_name.dup.shift.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



37
38
39
40
41
# File 'lib/rake/delphi/project.rb', line 37

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

#initvarsObject



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

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