Make dependency-free gemspec files

The default gems have not been installed yet in the build directory,
bundled gems depending on them can not work.  As those dependencies
should be usable there even without rubygems, make temporary gemspec
files without the dependencies, and use them in the build directory.
This commit is contained in:
Nobuyoshi Nakada 2022-07-13 18:58:32 +09:00
Родитель e1a4e44f14
Коммит a2c66f52f4
2 изменённых файлов: 15 добавлений и 0 удалений

Просмотреть файл

@ -565,6 +565,17 @@ clean-so::
end
}
if @gemname
gemdir = File.join($top_srcdir, ext_prefix, @gemname)
if File.exist?(spec_file = File.join(gemdir, ".bundled.#{@gemname}.gemspec")) or
File.exist?(spec_file = File.join(gemdir, "#{@gemname}.gemspec"))
dest = "#{File.dirname(ext_prefix)}/specifications"
FileUtils.mkdir_p(dest)
File.copy_stream(spec_file, "#{dest}/#{@gemname}.gemspec")
puts "copied #{@gemname}.gemspec"
end
end
dir = Dir.pwd
FileUtils::makedirs(ext_prefix)
Dir::chdir(ext_prefix)

Просмотреть файл

@ -18,5 +18,9 @@ def Gem.unpack(file, dir = nil, spec_dir = nil)
end
FileUtils.mkdir_p(spec_dir)
File.binwrite(File.join(spec_dir, "#{spec.name}-#{spec.version}.gemspec"), spec.to_ruby)
unless spec.extensions.empty? or spec.dependencies.empty?
spec.dependencies.clear
end
File.binwrite(File.join(spec_dir, ".bundled.#{spec.name}-#{spec.version}.gemspec"), spec.to_ruby)
puts "Unpacked #{file}"
end