summaryrefslogblamecommitdiff
path: root/user/perl-extutils-cppguess/fix.patch
blob: 13ddb220316dd24b0f5d6f07e017a1b9f0d9314e (plain) (tree)



























































                                                                                                 
Fix MSVC detection.  I don't know why I did this, either.

Ref: #1174

--- ExtUtils-CppGuess-0.27/lib/ExtUtils/CppGuess.pm.old	2023-11-19 13:19:51.000000000 -0600
+++ ExtUtils-CppGuess-0.27/lib/ExtUtils/CppGuess.pm	2024-07-10 11:26:59.221777726 -0500
@@ -257,6 +257,12 @@
       compiler_command => 'clang++',
       extra_lflags => '-lc++',
     );
+  } elsif ( $self->_cc_is_msvc( $c_compiler ) ) {
+    %guess = (
+      compiler_command => 'cl',
+      extra_cflags => '-TP -EHsc',
+      extra_lflags => 'msvcprt.lib',
+    );
   } elsif( $self->_cc_is_sunstudio( $c_compiler ) ) {
     %guess = (
       compiler_command => 'CC',
@@ -277,12 +283,6 @@
     # Don't use -lstdc++ if Perl was linked with -static-libstdc++ (ActivePerl 5.18+ on Windows)
     $guess{extra_lflags} = '-lstdc++'
       unless ($self->_config->{ldflags} || '') =~ /static-libstdc\+\+/;
-  } elsif ( $self->_cc_is_msvc( $c_compiler ) ) {
-    %guess = (
-      compiler_command => 'cl',
-      extra_cflags => '-TP -EHsc',
-      extra_lflags => 'msvcprt.lib',
-    );
   }
   $guess{$ENV2VAL{$_}} = $ENV{$_} for grep defined $ENV{$_}, keys %ENV2VAL;
   if (!%guess) {
@@ -383,8 +383,12 @@
 
 sub _cc_is_msvc {
     my( $self, $cc ) = @_;
-    $self->{is_msvc}
-      = ($self->_os =~ /MSWin32/ and File::Basename::basename($cc) =~ /^cl/i);
+    $self->{is_msvc} = undef;
+    if (
+      ($self->_os =~ /MSWin32/ and File::Basename::basename($cc) =~ /^cl/i)
+    ) {
+      $self->{is_msvc} = 1;
+    }
     return $self->{is_msvc};
 }
 
--- ExtUtils-CppGuess-0.27/t/002_icpp.t.old	2023-11-19 13:11:06.000000000 -0600
+++ ExtUtils-CppGuess-0.27/t/002_icpp.t	2024-07-10 11:27:48.506428703 -0500
@@ -9,8 +9,8 @@
   [
     { os => 'MSWin32', cc => 'cl', config => {ccflags => ''} },
     {
-      is_sunstudio => 0,
-      is_msvc => 1, is_gcc => 0, is_clang => 0,
+      is_sunstudio => undef,
+      is_msvc => 1, is_gcc => undef, is_clang => undef,
       compiler_command => 'cl -TP -EHsc',
       linker_flags => 'msvcprt.lib',
     },