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 )