diff options
Diffstat (limited to 'lib/rubygems/ext/builder.rb')
-rw-r--r-- | lib/rubygems/ext/builder.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/rubygems/ext/builder.rb b/lib/rubygems/ext/builder.rb index f6de6a50d7..e089b3d57a 100644 --- a/lib/rubygems/ext/builder.rb +++ b/lib/rubygems/ext/builder.rb @@ -29,7 +29,7 @@ class Gem::Ext::Builder make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make' end - destdir = '"DESTDIR=%s"' % ENV['DESTDIR'] + destdir = 'DESTDIR=%s' % ENV['DESTDIR'] ['clean', '', 'install'].each do |target| # Pass DESTDIR via command line to override what's in MAKEFLAGS @@ -37,7 +37,7 @@ class Gem::Ext::Builder make_program, destdir, target, - ].join(' ').rstrip + ].reject(&:empty?) begin run(cmd, results, "make #{target}".rstrip, make_dir) rescue Gem::InstallError @@ -56,19 +56,21 @@ class Gem::Ext::Builder p(command) end results << "current directory: #{dir}" - results << (command.respond_to?(:shelljoin) ? command.shelljoin : command) + results << command.shelljoin require "open3" # Set $SOURCE_DATE_EPOCH for the subprocess. env = {'SOURCE_DATE_EPOCH' => Gem.source_date_epoch_string} - output, status = Open3.capture2e(env, *command, :chdir => dir) + output, status = begin + Open3.capture2e(env, *command, :chdir => dir) + rescue => error + raise Gem::InstallError, "#{command_name || class_name} failed#{error.message}" + end if verbose puts output else results << output end - rescue => error - raise Gem::InstallError, "#{command_name || class_name} failed#{error.message}" ensure ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps end |