Alien-Libgcrypt

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

use 5.006;
use strict;
use warnings;
use Alien::Base::ModuleBuild;

my $class = Alien::Base::ModuleBuild->subclass(class => 'Alien::Libgcrypt::Builder',
                                               code => <<'EOC');

use strict;
use warnings;
use Carp;
$ENV{FTP_PASSIVE}=1;

sub alien_check_installed_version {
  my $self = shift;
  my $version = $self->config_data('system_library_version');
  unless (defined $version) {
    # $self->alien_helper->{pkg_config} ||= 'Alien::Base::PkgConfig->pkg_config_command';
    $version = $self->SUPER::alien_check_installed_version(@_);
    chomp $version;
    $self->config_data('system_library_version', $version);
  }
  $version;
}

sub use_installed_version {
  my $self = shift;
  if (defined (my $type = $self->config_data('install_type'))) {
    return ($type eq 'system');
  }

  !$Alien::Base::ModuleBuild::Force and
    $self->alien_check_installed_version
}

sub system_libgcrypt_config_get {
  my ($self, @keys) = @_;
  my %result = $self->do_system(join(' ', 'libgcrypt-config', map "--$_", @keys));
  if ($result{success}) {
    my $out = $result{stdout};
    chomp $out;
    return $out
  }
  return;
}

sub alien_provides_cflags {
  my $self = shift;
  if ($self->use_installed_version) {
    return $self->system_libgcrypt_config_get('cflags');
  }
  return;
}

sub alien_provides_libs {
  my $self = shift;
  if ($self->use_installed_version) {
    return $self->system_libgcrypt_config_get('libs');
  }
  return;
}

sub requires {
  my $self = shift;
  my %r;
  unless ($self->use_installed_version) {
    $r{'Alien::Libgpg_error'} = '0';
  }
  \%r;
}

*build_requires = \&requires;

sub libgpg_error_config {
  my ($self, $method) = @_;
  unless ($self->use_installed_version) {
    require Alien::Libgpg_error;
    return Alien::Libgpg_error->$method;
  }
  return;
}

sub alien_build_commands {
  my $self = shift;
  if ($self->{action} and $self->{action} eq 'Build_PL') {
    return ["echo '*** to be filled later ***'", "exit 1"]
  }

  my $config_cmd = "%c --prefix=%s";
  require Alien::Libgpg_error;
  my $alge = Alien::Libgpg_error->new;
  if ($alge->config('install_type') ne 'system') {
    if (defined(my $alge_dist_dir = $alge->dist_dir)) {
      if ($^O eq 'MSWin32') {
        $alge_dist_dir =~ s{\\}{/}g;
        $alge_dist_dir =~ s{^([a-z]):/}{/$1/}i;
      }
      $config_cmd .= " --with-libgpg-error-prefix=$alge_dist_dir";
    }
  }

  return [ $config_cmd, 'make']
}

EOC

my $builder = $class
    ->new( module_name          => 'Alien::Libgcrypt',
           license              => 'perl',
           dist_author          => q{Salvador Fandiño <sfandino@yahoo.com>},



( run in 2.088 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )