summaryrefslogtreecommitdiff
path: root/ext/extmk.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-07 02:49:27 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-07 02:49:27 +0000
commit4328d1f50d361ff8bfbf5311e689fb9cc8ca780d (patch)
treec97a636fc29984cb387b57b5b3c516780cb56690 /ext/extmk.rb
parent0512ab04b9d5a87fb5ddb12d451babc6b9e138f6 (diff)
extmk.rb: exclude recursively
* ext/extmk.rb: exclude extension libraries recursively. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/extmk.rb')
-rwxr-xr-xext/extmk.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index e83a0e5d8c..2cad5753ac 100755
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -496,13 +496,17 @@ cond = proc {|ext, *|
}
($extension || %w[*]).each do |e|
e = e.sub(/\A(?:\.\/)+/, '')
- exts |= Dir.glob("#{ext_prefix}/#{e}/**/extconf.rb").collect {|d|
+ incl, excl = Dir.glob("#{ext_prefix}/#{e}/**/extconf.rb").collect {|d|
d = File.dirname(d)
d.slice!(0, ext_prefix.length + 1)
d
- }.find_all {|ext|
+ }.partition {|ext|
with_config(ext, &cond)
- }.sort
+ }
+ incl.sort!
+ excl.sort!.collect! {|d| d+"/"}
+ nil while incl.reject! {|d| excl << d+"/" if excl.any? {|e| d.start_with?(e)}}
+ exts |= incl
if $LIBRUBYARG_SHARED.empty? and CONFIG["EXTSTATIC"] == "static"
exts.delete_if {|d| File.fnmatch?("-*", d)}
end