This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix ExtUtils-CBuilder tests for Perl 5.6
[perl5.git] / dist / ExtUtils-CBuilder / lib / ExtUtils / CBuilder / Platform / Windows.pm
index e4fe72a..da9b21b 100644 (file)
@@ -1,5 +1,5 @@
 package ExtUtils::CBuilder::Platform::Windows;
-
+$ExtUtils::CBuilder::Platform::Windows::VERSION = '0.280227';
 use strict;
 use warnings;
 
@@ -9,8 +9,7 @@ use File::Spec;
 use ExtUtils::CBuilder::Base;
 use IO::File;
 
-use vars qw($VERSION @ISA);
-$VERSION = '0.280205';
+use vars qw(@ISA);
 @ISA = qw(ExtUtils::CBuilder::Base);
 
 =begin comment
@@ -58,7 +57,7 @@ sub split_like_shell {
   # array) to the target program and make the program parse it itself,
   # we don't actually need to do any processing here.
   (my $self, local $_) = @_;
-  
+
   return @$_ if defined() && UNIVERSAL::isa($_, 'ARRAY');
   return unless defined() && length();
   return ($_);
@@ -77,7 +76,7 @@ sub do_system {
 sub arg_defines {
   my ($self, %args) = @_;
   s/"/\\"/g foreach values %args;
-  return map qq{"-D$_=$args{$_}"}, keys %args;
+  return map qq{"-D$_=$args{$_}"}, sort keys %args;
 }
 
 sub compile {
@@ -86,7 +85,7 @@ sub compile {
 
   die "Missing 'source' argument to compile()" unless defined $args{source};
 
-  $args{include_dirs} = [ $args{include_dirs} ] 
+  $args{include_dirs} = [ $args{include_dirs} ]
     if exists($args{include_dirs}) && ref($args{include_dirs}) ne "ARRAY";
 
   my ($basename, $srcdir) =
@@ -152,7 +151,7 @@ sub link {
   # if running in perl source tree, look for libs there, not installed
   my $lddlflags = $cf->{lddlflags};
   my $perl_src = $self->perl_src();
-  $lddlflags =~ s/\Q$cf->{archlibexp}\E[\\\/]CORE/$perl_src/ if $perl_src;
+  $lddlflags =~ s{\Q$cf->{archlibexp}\E[\\/]CORE}{$perl_src`/lib/CORE} if $perl_src;
 
   my %spec = (
     srcdir        => $to,
@@ -179,8 +178,7 @@ sub link {
 
   $spec{output}    ||= File::Spec->catfile( $spec{builddir},
                                             $spec{basename}  . '.'.$cf->{dlext}   );
-  $spec{manifest}  ||= File::Spec->catfile( $spec{builddir},
-                                            $spec{basename}  . '.'.$cf->{dlext}.'.manifest');
+  $spec{manifest}  ||= $spec{output} . '.manifest';
   $spec{implib}    ||= File::Spec->catfile( $spec{builddir},
                                             $spec{basename}  . $cf->{lib_ext} );
   $spec{explib}    ||= File::Spec->catfile( $spec{builddir},
@@ -213,7 +211,8 @@ sub link {
 
   (my $def_base = $spec{def_file}) =~ tr/'"//d;
   $def_base =~ s/\.def$//;
-  $self->prelink( dl_name => $args{module_name},
+  $self->prelink( %args,
+                  dl_name => $args{module_name},
                   dl_file => $def_base,
                   dl_base => $spec{basename} );