summaryrefslogtreecommitdiff
path: root/win32/FindExt.pm
diff options
context:
space:
mode:
Diffstat (limited to 'win32/FindExt.pm')
-rw-r--r--win32/FindExt.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/win32/FindExt.pm b/win32/FindExt.pm
index 298b44f9f1..b2386b1501 100644
--- a/win32/FindExt.pm
+++ b/win32/FindExt.pm
@@ -1,6 +1,6 @@
package FindExt;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
use strict;
use warnings;
@@ -20,12 +20,18 @@ sub getcwd {
return $ENV{'PWD'} = $_;
}
-sub set_static_extensions
-{
+sub set_static_extensions {
# adjust results of scan_ext, and also save
# statics in case scan_ext hasn't been called yet.
+ # if '*' is passed then all XS extensions are static
+ # (with possible exclusions)
%static = ();
- for (@_) {
+ my @list = @_;
+ if ($_[0] eq '*') {
+ my %excl = map {$_=>1} map {m/^!(.*)$/} @_[1 .. $#_];
+ @list = grep {!exists $excl{$_}} keys %ext;
+ }
+ for (@list) {
$static{$_} = 1;
$ext{$_} = 'static' if $ext{$_} && $ext{$_} eq 'dynamic';
}