From ac4da20aa3e991a68ad4f49f6816c7652c3422fd Mon Sep 17 00:00:00 2001 From: drbrain Date: Thu, 21 Feb 2013 22:05:09 +0000 Subject: [PATCH] * lib/rubygems/installer.rb (build_extensions): Create extension install destination before building extension. Patch by Kenta Murata. [ruby-trunk - Bug #7897] * test/rubygems/test_gem_installer.rb: Test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ lib/rubygems/installer.rb | 3 +++ test/rubygems/test_gem_installer.rb | 1 + 3 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index a6b5946b7c..306fcb2cf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Fri Feb 22 07:04:41 2013 Eric Hodel + + * lib/rubygems/installer.rb (build_extensions): Create extension + install destination before building extension. Patch by Kenta Murata. + [ruby-trunk - Bug #7897] + * test/rubygems/test_gem_installer.rb: Test for the above. + Fri Feb 22 06:30:57 2013 Eric Hodel * doc/globals.rdoc: Document what setting $DEBUG does. diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb index 0865a6dd3d..fcfb2836dc 100644 --- a/lib/rubygems/installer.rb +++ b/lib/rubygems/installer.rb @@ -8,6 +8,7 @@ require 'rubygems/exceptions' require 'rubygems/package' require 'rubygems/ext' require 'rubygems/user_interaction' +require 'fileutils' ## # The installer installs the files contained in the .gem into the Gem.home. @@ -671,6 +672,8 @@ TEXT end begin + FileUtils.mkdir_p dest_path + Dir.chdir extension_dir do results = builder.build(extension, gem_dir, dest_path, results, @build_args) diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb index fc8d1a7782..bb48f35d9f 100644 --- a/test/rubygems/test_gem_installer.rb +++ b/test/rubygems/test_gem_installer.rb @@ -137,6 +137,7 @@ load Gem.bin_path('a', 'executable', version) path = File.join @spec.gem_dir, "extconf_args" assert_equal args.inspect, File.read(path).strip + assert File.directory? File.join(@spec.gem_dir, 'lib') end def test_check_executable_overwrite