Class: Build

Inherits:
Array show all
Defined in:
lib/tasks/build.rb

Instance Attribute Summary

Attributes inherited from Array

#env

Instance Method Summary collapse

Methods inherited from Array

#add, #add_passive, #add_quiet, #execute, #has_command?, #initialize, #log_debug_info, #to_html

Constructor Details

This class inherits a constructor from Array

Instance Method Details

#updateObject


16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/tasks/build.rb', line 16

def update
  # puts "SLN_FILES: #{SLN_FILES}" if(Environment.default.debug?)

  update_gemspec
  update_dotnet
  update_sln if Environment.windows?
  update_smartassembly if Environment.windows?
  # update_nuget if Environment.windows?
  update_wix if Environment.windows? && !defined?(NO_WIX)
  update_xcode if Environment.mac?

  log_debug_info("Build") if defined?(DEBUG)
end

#update_dotnetObject


37
38
39
40
# File 'lib/tasks/build.rb', line 37

def update_dotnet
  # puts "Build scanning for project.json" if Environment.default.debug?
  add_quiet "dotnet build" if File.exist?("project.json")
end

#update_gemspecObject


30
31
32
33
34
35
# File 'lib/tasks/build.rb', line 30

def update_gemspec
  # puts "Build scanning for gemspec files" if Environment.default.debug?
  Dir.glob("*.gemspec") do |gemspec|
    add_quiet("gem build #{gemspec}") unless File.exist?(Gemspec.gemfile(gemspec))
  end
end

#update_slnObject


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

def update_sln
  # puts "Build scanning for sln files" if Environment.default.debug?
  SLN_FILES.each do |sln_file|
    puts "  #{sln_file}" if Environment.default.debug?
    build_commands = MSBuild.get_build_commands sln_file
    if !build_commands.nil?
      build_commands.each do |c|
        puts "  build command #{c} discovered." if Environment.default.debug?
        add_quiet(c)
      end
    elsif Environment.default.debug?
      puts "  no build command discovered."
    end
  end
end

#update_smartassemblyObject


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/tasks/build.rb', line 58

def update_smartassembly
  # puts "Build scanning for sa (smart assembly) files" if Environment.default.debug?
  sa = "C:/Program Files/Red Gate/SmartAssembly 6/SmartAssembly.com"
  if File.exist?("C:/Program Files/Red Gate/SmartAssembly 7/SmartAssembly.com")
    sa = "C:/Program Files/Red Gate/SmartAssembly 7/SmartAssembly.com"
  end
  SMARTASSEMBLY_FILES.each do |saproj_file|
    puts "  #{saproj_file}" if Environment.default.debug?
    if !File.exist?(sa)
      puts "warning: #{sa} does not exist, skipping build command for #{saproj_file}"
    else
      add_quiet("\"#{sa}\" /build #{saproj_file}")
    end
  end
end

#update_wixObject


74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/tasks/build.rb', line 74

def update_wix
  # puts "Build scanning for wxs <Product> files" if Environment.default.debug?
  WXS_FILES.each do |wxs_file|
    next unless IO.read(wxs_file).include?("<Product")

    build_commands = Wix.get_build_commands wxs_file
    next if build_commands.nil?

    build_commands.each do |c|
      add_quiet(c)
    end
  end

  # puts "Build scanning for wxs <Bundle> files" if Environment.default.debug?
  WXS_FILES.each do |wxs_file|
    next unless IO.read(wxs_file).include?("<Bundle")

    build_commands = Wix.get_build_commands wxs_file
    next if build_commands.nil?

    build_commands.each do |c|
      add_quiet(c)
    end
  end
end

#update_xcodeObject


100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/tasks/build.rb', line 100

def update_xcode
  # puts "Build scanning for xcodeproj folders" if Environment.default.debug?
  Dir.glob("**/*.xcodeproj").each do |dir|
    puts dir if Environment.default.debug?
    build_commands = XCodeBuild.get_build_commands dir
    next if build_commands.nil?

    build_commands.each do |c|
      build_commands << c
    end
  end
end