rbinstall.rb: no file list for default gems
* tool/rbinstall.rb (default-gems): no file list is used now. all files should be installed as standard libraries. [ruby-core:80667] [Bug #13428] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
03421631bd
commit
5bca8051af
@ -608,69 +608,6 @@ install?(:local, :comm, :man) do
|
||||
end
|
||||
|
||||
module RbInstall
|
||||
module Specs
|
||||
class FileCollector
|
||||
def initialize(gemspec)
|
||||
@gemspec = gemspec
|
||||
@base_dir = File.dirname(gemspec)
|
||||
end
|
||||
|
||||
def collect
|
||||
(ruby_libraries + built_libraries).sort
|
||||
end
|
||||
|
||||
private
|
||||
def type
|
||||
/\/(ext|lib)?\/.*?\z/ =~ @base_dir
|
||||
$1
|
||||
end
|
||||
|
||||
def ruby_libraries
|
||||
case type
|
||||
when "ext"
|
||||
prefix = "#{$extout}/common/"
|
||||
base = "#{prefix}#{relative_base}"
|
||||
when "lib"
|
||||
base = @base_dir
|
||||
prefix = base.sub(/lib\/.*?\z/, "") + "lib/"
|
||||
end
|
||||
|
||||
if base
|
||||
Dir.glob("#{base}{.rb,/**/*.rb}").collect do |ruby_source|
|
||||
remove_prefix(prefix, ruby_source)
|
||||
end
|
||||
else
|
||||
[remove_prefix(File.dirname(@gemspec) + '/', @gemspec.gsub(/gemspec/, 'rb'))]
|
||||
end
|
||||
end
|
||||
|
||||
def built_libraries
|
||||
case type
|
||||
when "ext"
|
||||
prefix = "#{$extout}/#{CONFIG['arch']}/"
|
||||
base = "#{prefix}#{relative_base}"
|
||||
dlext = CONFIG['DLEXT']
|
||||
Dir.glob("#{base}{.#{dlext},/**/*.#{dlext}}").collect do |built_library|
|
||||
remove_prefix(prefix, built_library)
|
||||
end
|
||||
when "lib"
|
||||
[]
|
||||
else
|
||||
[]
|
||||
end
|
||||
end
|
||||
|
||||
def relative_base
|
||||
/\/#{Regexp.escape(type)}\/(.*?)\z/ =~ @base_dir
|
||||
$1
|
||||
end
|
||||
|
||||
def remove_prefix(prefix, string)
|
||||
string.sub(/\A#{Regexp.escape(prefix)}/, "")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class UnpackedInstaller < Gem::Installer
|
||||
module DirPackage
|
||||
def extract_files(destination_dir, pattern = "*")
|
||||
@ -760,7 +697,12 @@ install?(:ext, :comm, :gem, :'default-gems', :'default-gems-comm') do
|
||||
install_default_gem('lib', srcdir)
|
||||
end
|
||||
install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do
|
||||
install_default_gem('ext', srcdir)
|
||||
install_default_gem('ext', srcdir) do |path|
|
||||
# assume that gemspec and extconf.rb are placed in the same directory
|
||||
IO.foreach(File.dirname(path[(srcdir.size+1)..-1]) + "/Makefile") do |l|
|
||||
break true if /^TARGET\s*=/ =~ l
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def load_gemspec(file)
|
||||
@ -787,12 +729,8 @@ def install_default_gem(dir, srcdir)
|
||||
makedirs(default_spec_dir)
|
||||
|
||||
gems = Dir.glob("#{srcdir}/#{dir}/**/*.gemspec").map {|src|
|
||||
spec = load_gemspec(src)
|
||||
file_collector = RbInstall::Specs::FileCollector.new(src)
|
||||
files = file_collector.collect
|
||||
next if files.empty?
|
||||
spec.files = files
|
||||
spec
|
||||
next if block_given? and !yield(src)
|
||||
load_gemspec(src)
|
||||
}
|
||||
gems.compact.sort_by(&:name).each do |gemspec|
|
||||
full_name = "#{gemspec.name}-#{gemspec.version}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user