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.527 second using v1.01-cache-2.11-cpan-49f99fa48dc )