Class: CSC

Inherits:
Object
  • Object
show all
Includes:
Albacore::RunCommand, Albacore::Task, Configuration::CSC, SupportsLinuxEnvironment
Defined in:
lib/albacore/csc.rb

Instance Attribute Summary collapse

Attributes included from SupportsLinuxEnvironment

#is_linux

Attributes included from Logging

#current_log_device, #logger

Attributes included from Albacore::RunCommand

#command, #working_directory

Instance Method Summary collapse

Methods included from SupportsLinuxEnvironment

#format_path, #format_reference, #to_OS_format

Methods included from Configuration::CSC

#csc, cscconfig, included, #use

Methods included from Albacore::Configuration

included

Methods included from Configuration::NetVersion

#get_net_version, #win_dir

Methods included from Failure

#fail_with_message

Methods included from Logging

#create_logger, #log_device=, #log_level, #log_level=

Methods included from Albacore::RunCommand

#get_command, #run_command

Methods included from AttrMethods

#attr_array, #attr_hash

Methods included from Albacore::Task

clean_dirname, create_rake_task, include_config, included

Methods included from UpdateAttributes

#<<, #update_attributes

Methods included from YAMLConfig

#configure, #load_config_by_task_name

Constructor Details

#initializeCSC

Returns a new instance of CSC.



16
17
18
19
20
# File 'lib/albacore/csc.rb', line 16

def initialize
  @optimize = false
  super()
  update_attributes csc.to_hash
end

Instance Attribute Details

#debugObject

Returns the value of attribute debug.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def debug
  @debug
end

#delaysignObject

Returns the value of attribute delaysign.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def delaysign
  @delaysign
end

#docObject

Returns the value of attribute doc.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def doc
  @doc
end

#keycontainerObject

Returns the value of attribute keycontainer.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def keycontainer
  @keycontainer
end

#keyfileObject

Returns the value of attribute keyfile.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def keyfile
  @keyfile
end

#mainObject

Returns the value of attribute main.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def main
  @main
end

#optimizeObject

Returns the value of attribute optimize.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def optimize
  @optimize
end

#outputObject

Returns the value of attribute output.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def output
  @output
end

#targetObject

Returns the value of attribute target.



11
12
13
# File 'lib/albacore/csc.rb', line 11

def target
  @target
end

Instance Method Details

#executeObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/albacore/csc.rb', line 22

def execute
  params = []
  params << @references.map{|r| format_reference(r)} unless @references.nil?
  params << @resources.map{|r| format_resource(r)} unless @resources.nil?
  params << main_entry unless @main.nil?
  params << "\"/out:#{@output}\"" unless @output.nil?
  params << "/target:#{@target}" unless @target.nil?
  params << "/optimize+" if @optimize
  params << "\"/keyfile:#{@keyfile}\"" unless @keyfile.nil?
  params << "\"/keycontainer:#{@keycontainer}\"" unless @keycontainer.nil?
  params << "/delaysign+" if @delaysign
  params << get_debug_param unless @debug.nil?
  params << "/doc:#{@doc}" unless @doc.nil?
  params << get_define_params unless @define.nil?
  params << @compile.map{|f| format_path(f)} unless @compile.nil?

  result = run_command "CSC", params
  
  failure_message = 'CSC Failed. See Build Log For Detail'
  fail_with_message failure_message if !result
end

#format_resource(resource) ⇒ Object



64
65
66
# File 'lib/albacore/csc.rb', line 64

def format_resource(resource)
  "/res:#{resource}"
end

#get_debug_paramObject



49
50
51
52
53
54
55
56
57
58
# File 'lib/albacore/csc.rb', line 49

def get_debug_param
  case @debug
    when true
      "/debug"
    when :full
      "/debug:full"
    when :pdbonly
      "/debug:pdbonly"
  end
end

#get_define_paramsObject



44
45
46
47
# File 'lib/albacore/csc.rb', line 44

def get_define_params
  symbols = @define.join(";")
  "/define:#{symbols}"
end

#main_entryObject



60
61
62
# File 'lib/albacore/csc.rb', line 60

def main_entry
  "/main:#{@main}"
end