1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

extmk.rb: build_complete

* ext/extmk.rb (create_makefile): make gem.build_complete file
  under TARGET_SO_DIR and install it only when the gem build
  succeeded.  [ruby-core:77057] [Bug #12681]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-08-31 08:39:23 +00:00
parent 1b6a42d968
commit 7f7aa9d442
3 changed files with 24 additions and 1 deletions

View file

@ -1,3 +1,9 @@
Wed Aug 31 17:39:19 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/extmk.rb (create_makefile): make gem.build_complete file
under TARGET_SO_DIR and install it only when the gem build
succeeded. [ruby-core:77057] [Bug #12681]
Wed Aug 31 15:36:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> Wed Aug 31 15:36:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/extmk.rb: move TARGET_SO_DIR stuffs to mkmf.rb. * ext/extmk.rb: move TARGET_SO_DIR stuffs to mkmf.rb.

View file

@ -568,6 +568,24 @@ Dir.chdir('..')
FileUtils::makedirs('gems') FileUtils::makedirs('gems')
Dir.chdir('gems') Dir.chdir('gems')
extout = $extout extout = $extout
unless gems.empty?
def self.create_makefile(*args, &block)
if super(*args, &block)
open("Makefile", "a") do |mf|
mf << %{
build_complete = $(TARGET_SO_DIR)gem.build_complete
install-so: build_complete
build_complete: $(build_complete)
$(build_complete): $(TARGET_SO)
$(Q) $(TOUCH) $@
}
end
true
end
end
end
gems.each do |d| gems.each do |d|
$extout = extout.dup $extout = extout.dup
$sodir = "$(extout)/gems/$(arch)/#{d[%r{\A[^/]+}]}" $sodir = "$(extout)/gems/$(arch)/#{d[%r{\A[^/]+}]}"

View file

@ -766,7 +766,6 @@ install?(:ext, :comm, :gem) do
File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec")) File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
unless spec.extensions.empty? unless spec.extensions.empty?
install_recursive(ext, spec.extension_dir) install_recursive(ext, spec.extension_dir)
open_for_install(spec.gem_build_complete_path, $data_mode) {""}
end end
installed_gems[spec.full_name] = true installed_gems[spec.full_name] = true
end end