Alt-Alien-FFI-System

 view release on metacpan or  search on metacpan

lib/Alien/FFI.pm  view on Meta::CPAN

package Alien::FFI;

use strict;
use warnings;
use 5.008001;
use Carp qw( croak );

# ABSTRACT: Get libffi compiler and linker flags
our $VERSION = '0.23'; # VERSION


sub new
{
  my($class) = @_;
  bless {}, $class;
}

my $pkg_config;

foreach my $try ($ENV{PKG_CONFIG}, 'pkg-config', 'pkgconf')
{
  next unless defined $try;
  require IPC::Cmd;
  if(IPC::Cmd::can_run($try))
  {
    $pkg_config = $try;
    last;
  }
}

unless($pkg_config)
{
  if(eval q{ use PkgConfig (); 1 })
  {
    $pkg_config = "$^X $INC{'PkgConfig.pm'}";
  }
}

unless($pkg_config)
{
  die "unable to find pkg-config, pkgconf or PkgConfig.pm";
}

sub install_type
{
  'system';
}

my $config;

sub config
{
  my(undef, $key) = @_;

  unless($config)
  {
    my $version = `$pkg_config --modversion libffi`;
    die "package libffi not found" if $?;
    chomp $version;
    $config = {
      version    => $version,
      pkg_config => $pkg_config,
    };
  }
  
  $config->{$key};
}

foreach my $linkage ('share','static')
{
  foreach my $name ('cflags','libs')
  {
    my $value;
    
    my $flags = "--$name";



( run in 1.908 second using v1.01-cache-2.11-cpan-39bf76dae61 )