Alien-bz2-Installer

 view release on metacpan or  search on metacpan

lib/Alien/bz2/Installer.pm  view on Meta::CPAN


sub system_install
{
  my($class, %options) = @_;
  
  $options{alien} = 1 unless defined $options{alien};
  $options{test} ||= 'compile';
  die "test must be one of compile, ffi or both"
    unless $options{test} =~ /^(compile|ffi|both)$/;
   
  my $build = bless {
    cflags => [],
    libs   => ['-lbz2'],
  }, $class;
  
  $build->test_compile_run || die $build->error if $options{test} =~ /^(compile|both)$/;
  $build->test_ffi || die $build->error if $options{test} =~ /^(ffi|both)$/;
  $build;
}


lib/Alien/bz2/Installer.pm  view on Meta::CPAN

      die "make -f Makefile-libbz2_so failed" if $?;
      system $make, 'all';
      die "make all failed" if $?;
      system $make, 'install', "PREFIX=$prefix";
      die "make install failed" if $?;
      mkdir(_catdir($prefix, 'dll'));
      File::Copy::copy('libbz2.so.1.0.6', _catfile($prefix, 'dll', 'libbz2.so.1.0.6'));
      eval { chmod 0755, _catfile($prefix, 'dll', 'libbz2.so.1.0.6') };
    }
    
    my $build = bless {
      cflags  => [ "-I" . _catdir($prefix, 'include') ],
      libs    => [ "-L" . _catdir($prefix, 'lib'), '-lbz2' ],
      prefix  => $prefix,
      dll_dir => [ 'dll' ],
      dlls    => do {
        opendir(my $dh, File::Spec->catdir($prefix, 'dll'));
        [grep { ! -l File::Spec->catfile($prefix, 'dll', $_) } grep { /\.so/ || /\.(dll|dylib)$/ } grep !/^\./, readdir $dh];
      },
    }, $class;
    

t/test_compiler_run.t  view on Meta::CPAN

BEGIN {
  plan skip_all => 'test requires Devel::CheckLib'
    unless eval q{ use Devel::CheckLib; 1 };
}

plan skip_all => 'test requires bz2 already installed'
  unless check_lib( lib => 'bz2' );

plan tests => 1;

my $installer = bless { cflags => [], libs => ['-lbz2'] }, 'Alien::bz2::Installer';

my $version = $installer->test_compile_run;
ok $version, "version = $version";

t/test_ffi.t  view on Meta::CPAN

use DynaLoader;

plan skip_all => 'test requires FFI::Raw'
  unless eval { require FFI::Raw };
plan skip_all => 'test requires dynamic bz2'
  unless defined DynaLoader::dl_findfile('-lbz2')
  &&     DynaLoader::dl_findfile('-lbz2') !~ /\.a$/;

plan tests => 1;

my $installer = bless { clfags => [], libs => ['-lbz2'] }, 'Alien::bz2::Installer';

my $version = $installer->test_ffi;
ok $version, "version = $version";



( run in 1.786 second using v1.01-cache-2.11-cpan-de7293f3b23 )