Class: Gem::Ext::Builder
- Inherits:
-
Object
show all
- Defined in:
- lib/rubygems/ext/builder.rb
Overview
– Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. All rights reserved. See LICENSE.txt for permissions. ++
Class Method Summary
collapse
Class Method Details
.class_name ⇒ Object
9
10
11
12
|
# File 'lib/rubygems/ext/builder.rb', line 9
def self.class_name
name =~ /Ext::(.*)Builder/
$1.downcase
end
|
.make(dest_path, results) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/rubygems/ext/builder.rb', line 14
def self.make(dest_path, results)
unless File.exist? 'Makefile' then
raise Gem::InstallError, "Makefile not found:\n\n#{results.join "\n"}"
end
RbConfig::CONFIG['configure_args'] =~ /with-make-prog\=(\w+)/
make_program = $1 || ENV['MAKE'] || ENV['make']
unless make_program then
make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
end
destdir = '"DESTDIR=%s"' % ENV['DESTDIR'] if RUBY_VERSION > '2.0'
['', 'install'].each do |target|
cmd = [
make_program,
destdir,
target
].join(' ').rstrip
run(cmd, results, "make #{target}".rstrip)
end
end
|
.redirector ⇒ Object
39
40
41
|
# File 'lib/rubygems/ext/builder.rb', line 39
def self.redirector
'2>&1'
end
|
.run(command, results, command_name = nil) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/rubygems/ext/builder.rb', line 43
def self.run(command, results, command_name = nil)
verbose = Gem.configuration.really_verbose
begin
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], nil
if verbose
puts(command)
system(command)
else
results << command
results << `#{command} #{redirector}`
end
ensure
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
end
unless $?.success? then
results << "Building has failed. See above output for more information on the failure." if verbose
raise Gem::InstallError, "#{command_name || class_name} failed:\n\n#{results.join "\n"}"
end
end
|