From 33d1f172c839bc14ba71a8e74f5ca6b01b7e069b Mon Sep 17 00:00:00 2001 From: drbrain Date: Wed, 16 Oct 2013 00:43:14 +0000 Subject: * lib/rubygems: Update to RubyGems master 278d00d. Changes: Fixes building extensions without a "clean" make rule Adds gem dependency file autodetection to "gem install -g" * test/rubygems: Tests for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/ext/builder.rb | 13 ++++++------- lib/rubygems/ext/cmake_builder.rb | 3 --- 2 files changed, 6 insertions(+), 10 deletions(-) (limited to 'lib/rubygems/ext') diff --git a/lib/rubygems/ext/builder.rb b/lib/rubygems/ext/builder.rb index 069ab4cfe0..761505636c 100644 --- a/lib/rubygems/ext/builder.rb +++ b/lib/rubygems/ext/builder.rb @@ -19,11 +19,6 @@ class Gem::Ext::Builder CHDIR_MUTEX = Mutex.new # :nodoc: - ## - # `make` targets to run when building the extension - - MAKE_TARGETS = ['clean', '', 'install'] # :nodoc: - attr_accessor :build_args # :nodoc: def self.class_name @@ -45,14 +40,18 @@ class Gem::Ext::Builder destdir = '"DESTDIR=%s"' % ENV['DESTDIR'] if RUBY_VERSION > '2.0' - self::MAKE_TARGETS.each do |target| + ['clean', '', 'install'].each do |target| # Pass DESTDIR via command line to override what's in MAKEFLAGS cmd = [ make_program, destdir, target ].join(' ').rstrip - run(cmd, results, "make #{target}".rstrip) + begin + run(cmd, results, "make #{target}".rstrip) + rescue Gem::InstallError + raise unless target == 'clean' # ignore clean failure + end end end diff --git a/lib/rubygems/ext/cmake_builder.rb b/lib/rubygems/ext/cmake_builder.rb index 8bd82dafe2..d6d106f4ae 100644 --- a/lib/rubygems/ext/cmake_builder.rb +++ b/lib/rubygems/ext/cmake_builder.rb @@ -1,7 +1,4 @@ class Gem::Ext::CmakeBuilder < Gem::Ext::Builder - - MAKE_TARGETS = ['', 'install'] # :nodoc: - def self.build(extension, directory, dest_path, results) unless File.exist?('Makefile') then cmd = "cmake . -DCMAKE_INSTALL_PREFIX=#{dest_path}" -- cgit v1.2.3