ignore extensions based on the configuration
authorTony Cook <tony@develop-help.com>
Thu, 6 Jan 2011 10:52:24 +0000 (21:52 +1100)
committerTony Cook <tony@develop-help.com>
Sun, 13 Feb 2011 12:00:43 +0000 (23:00 +1100)
t/porting/FindExt.t
win32/FindExt.pm

index 95c6cbd..0100cb1 100644 (file)
@@ -28,6 +28,7 @@ unless (defined $Config{usedl}) {
 plan tests => 10;
 use FindExt;
 
+FindExt::apply_config(\%Config);
 FindExt::scan_ext('../cpan');
 FindExt::scan_ext('../dist');
 FindExt::scan_ext('../ext');
index fe1febd..25fa8ce 100644 (file)
@@ -9,6 +9,25 @@ my $no = join('|',qw(GDBM_File ODBM_File NDBM_File DB_File
                      VMS VMS-DCLsym VMS-Stdio Sys-Syslog IPC-SysV I18N-Langinfo));
 $no = qr/^(?:$no)$/i;
 
+sub apply_config {
+    my ($config) = @_;
+    my @no;
+
+    # duplicates logic from Configure (mostly)
+    push @no, "DB_File" unless $config->{i_db};
+    push @no, "GDBM_File" unless $config->{i_gdbm};
+    push @no, "I18N-Langinfo" unless $config->{i_langinfo} && $config->{i_nl_langinfo};
+    push @no, "IPC-SysV" unless $config->{d_msg} || $config->{d_sem} || $config->{d_shm};
+    push @no, "NDBM_File" unless $config->{d_ndbm};
+    push @no, "ODBM_File"
+      unless ($config->{i_dbm} || $config->{i_rpcsvcdbm}) && !$config->{d_cplusplus};
+    push @no, "VMS.*" unless $^O eq "VMS";
+    push @no, "Win32.*" unless $^O eq "MSWin32" || $^O eq "cygwin";
+
+    $no = join('|', @no);
+    $no = qr/^(?:$no)$/i;
+}
+
 my %ext;
 my %static;