diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-04-05 23:24:00 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-04-07 09:47:10 +0900 |
commit | db3d111c1d1e90b400f1e737ded6a4e4bdf2cec8 (patch) | |
tree | 9855ded7e329418eb40c178d813ffb96904633bb | |
parent | 3607657e1c613b1c1988c0a954bf03547978974f (diff) | |
download | ruby-db3d111c1d1e90b400f1e737ded6a4e4bdf2cec8.tar.gz |
Bundled gems are expanded under `.bundle/gems` now
-rwxr-xr-x | ext/extmk.rb | 13 | ||||
-rw-r--r-- | template/exts.mk.tmpl | 2 |
2 files changed, 8 insertions, 7 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb index 4a087f294a..1da9e27045 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -146,7 +146,7 @@ def extmake(target, basedir = 'ext', maybestatic = true) top_srcdir = $top_srcdir topdir = $topdir hdrdir = $hdrdir - prefix = "../" * (target.count("/")+1) + prefix = "../" * (basedir.count("/")+target.count("/")+1) $top_srcdir = relative_from(top_srcdir, prefix) $hdrdir = relative_from(hdrdir, prefix) $topdir = prefix + $topdir @@ -460,10 +460,11 @@ for dir in ["ext", File::join($top_srcdir, "ext")] end unless $extstatic @gemname = nil -if ARGV[0] - ext_prefix, exts = ARGV.shift.split('/', 2) +if exts = ARGV.shift + ext_prefix = exts[%r[\A(?>\.bundle/)?[^/]+(?:/(?=(.+)?)|\z)]] + exts = $1 $extension = [exts] if exts - if ext_prefix == 'gems' + if ext_prefix.start_with?('.') @gemname = exts elsif exts $static_ext.delete_if {|t, *| !File.fnmatch(t, exts)} @@ -515,7 +516,7 @@ cond = proc {|ext, *| exts.delete_if {|d| File.fnmatch?("-*", d)} end end -ext_prefix = File.basename(ext_prefix) +ext_prefix = ext_prefix[$top_srcdir.size+1..-2] extend Module.new { def timestamp_file(name, target_prefix = nil) @@ -634,7 +635,7 @@ rubies = [] end } -Dir.chdir ".." +Dir.chdir dir unless $destdir.to_s.empty? $mflags.defined?("DESTDIR") or $mflags << "DESTDIR=#{$destdir}" end diff --git a/template/exts.mk.tmpl b/template/exts.mk.tmpl index 2f37f4480a..964939e365 100644 --- a/template/exts.mk.tmpl +++ b/template/exts.mk.tmpl @@ -25,7 +25,7 @@ macros["old_extensions"] = [] contpat = /(?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*/ Dir.glob("{ext,.bundle/gems}/*/exts.mk") do |e| - gem = /\Agems(?=\/)/ =~ e + gem = e.start_with?(".bundle/gems/") s = File.read(e) s.scan(/^(extensions|SUBMAKEOPTS|EXT[A-Z]+|MFLAGS|NOTE_[A-Z]+)[ \t]*=[ \t]*(#{contpat})$/o) do |n, v| v.gsub!(/\\\n[ \t]*/, ' ') |