summaryrefslogtreecommitdiff
path: root/jni/ruby/lib/rubygems/ext/rake_builder.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/lib/rubygems/ext/rake_builder.rb')
-rw-r--r--jni/ruby/lib/rubygems/ext/rake_builder.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/jni/ruby/lib/rubygems/ext/rake_builder.rb b/jni/ruby/lib/rubygems/ext/rake_builder.rb
new file mode 100644
index 0000000..d5ebf59
--- /dev/null
+++ b/jni/ruby/lib/rubygems/ext/rake_builder.rb
@@ -0,0 +1,36 @@
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+class Gem::Ext::RakeBuilder < Gem::Ext::Builder
+
+ def self.build(extension, directory, dest_path, results, args=[], lib_dir=nil)
+ if File.basename(extension) =~ /mkrf_conf/i then
+ cmd = "#{Gem.ruby} #{File.basename extension}"
+ cmd << " #{args.join " "}" unless args.empty?
+ run cmd, results
+ end
+
+ # Deal with possible spaces in the path, e.g. C:/Program Files
+ dest_path = '"' + dest_path.to_s + '"' if dest_path.to_s.include?(' ')
+
+ rake = ENV['rake']
+
+ rake ||= begin
+ "#{Gem.ruby} -rubygems #{Gem.bin_path('rake', 'rake')}"
+ rescue Gem::Exception
+ end
+
+ rake ||= Gem.default_exec_format % 'rake'
+
+ cmd = "#{rake} RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen
+
+ run cmd, results
+
+ results
+ end
+
+end
+