Alien-SDL2
    
    
  
  
  
view release on metacpan or search on metacpan
inc/My/Builder.pm view on Meta::CPAN
      warn "###WARN### Patching '$k' failed: $@";
    }
  }
}
sub run_output_on_error {
  my ($self, $limit, $cmd) = @_;
  my $output;
  my $c = ref($cmd) eq 'ARRAY' ? join(' ',@$cmd) : $cmd;
  print STDERR "CMD: $c\n";
  print STDERR "- running (stdout+stderr redirected)...\n";
  my $rv = run3($cmd, \undef, \$output, \$output, { return_if_system_error => 1 } );
  my $success = ($rv == 1 && $? == 0) ? 1 : 0;
  if ($success) {
    print STDERR "- finished successfully (output suppressed)\n";
  }
  else {
    $output = substr $output, -$limit if defined $limit; # we want just last N chars
    if (!defined($limit)) {
      print STDERR "OUTPUT:\n", $output, "\n";
    }
lib/Alien/SDL2.pm view on Meta::CPAN
/* GL/gl.h on Win32 requires windows.h being included before */
#include <windows.h>
#endif
$inc
int demofunc(void) { return 0; }
MARKER
  close($fs);
  my $obj;
  my $stdout = '';
  my $stderr = '';
  ($stdout, $stderr) = Capture::Tiny::capture {
    $obj = eval { $cb->compile( source => $src, extra_compiler_flags => Alien::SDL2->config('cflags')); };
  };
  if($obj) {
    print STDERR "\n";
    unlink $obj;
    return 1;
  }
  else {
    if( $stderr ) {
      $stderr =~ s/[\r\n]$//;
      $stderr =~ s/^\Q$src\E[\d\s:]*//;
      print STDERR " NOK: ($stderr)\n";
    }
    # on Windows (MSVC) stdout is set, but not stderr
    else {
      $stdout =~ s/[\r\n]$//;
      $stdout =~ s/.+[\r\n]//;
      $stdout =~ s/^\Q$src\E[\(\)\d\s:]*//;
      print STDERR " NOK: ($stdout)\n";
    }
    return 0;
  }
}
( run in 0.337 second using v1.01-cache-2.11-cpan-5dc5da66d9d )