Class: Gem::Ext::RakeBuilder

Inherits:
Builder show all
Defined in:
lib/rubygems/ext/rake_builder.rb

Instance Attribute Summary

Attributes inherited from Builder

#build_args

Class Method Summary collapse

Methods inherited from Builder

#build_error, #build_extension, #build_extensions, #builder_for, class_name, #initialize, make, run, #write_gem_make_out

Methods included from UserInteraction

#alert, #alert_error, #alert_warning, #ask, #ask_for_password, #ask_yes_no, #choose_from_list, #say, #terminate_interaction, #verbose

Methods included from DefaultUserInteraction

ui, #ui, ui=, #ui=, use_ui, #use_ui

Methods included from Text

#clean_text, #format_text, #levenshtein_distance, #min3, #truncate_text

Constructor Details

This class inherits a constructor from Gem::Ext::Builder

Class Method Details

.build(extension, dest_path, results, args = [], lib_dir = nil, extension_dir = Dir.pwd) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rubygems/ext/rake_builder.rb', line 11

def self.build(extension, dest_path, results, args=[], lib_dir=nil, extension_dir=Dir.pwd)
  if File.basename(extension) =~ /mkrf_conf/i
    run([Gem.ruby, File.basename(extension), *args], results, class_name, extension_dir)
  end

  rake = ENV['rake']

  if rake
    rake = rake.shellsplit
  else
    begin
      rake = [Gem.ruby, "-I#{File.expand_path("../..", __dir__)}", "-rrubygems", Gem.bin_path('rake', 'rake')]
    rescue Gem::Exception
      rake = [Gem.default_exec_format % 'rake']
    end
  end

  rake_args = ["RUBYARCHDIR=#{dest_path}", "RUBYLIBDIR=#{dest_path}", *args]
  run(rake + rake_args, results, class_name, extension_dir)

  results
end