Alien-Libbz2

 view release on metacpan or  search on metacpan

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

package Alien::Libbz2;

use strict;
use warnings;
use 5.008001;
use base 'Alien::Base';

# ABSTRACT: Build and make available bz2
our $VERSION = '0.24'; # VERSION




sub alien_helper
{
  return {
    bzip2 => sub { 'bzip2' },
  };
}

# TODO: this should eventually be correctly handled by
# Alien::Build
sub config {
  my($class, $key) = @_;
  return 'bz2' if $key eq 'name' || $key eq 'ffi_name';
  return $class->SUPER::config($key);
}


1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Alien::Libbz2 - Build and make available bz2

=head1 VERSION

version 0.24

=head1 SYNOPSIS

In your Build.PL:

 use Module::Build;
 use Alien::Libbz2;
 my $builder = Module::Build->new(
   ...
   configure_requires => {
     'Alien::Libbz2' => '0',
     ...
   },
   extra_compiler_flags => Alien::Libbz2->cflags,
   extra_linker_flags   => Alien::Libbz2->libs,
   ...
 );
 
 $build->create_build_script;

In your Makefile.PL:

 use ExtUtils::MakeMaker;
 use Config;
 use Alien::Libbz2;
 
 WriteMakefile(
   ...
   CONFIGURE_REQUIRES => {
     'Alien::Libbz2' => '0',
   },
   CCFLAGS => Alien::Libbz2->cflags . " $Config{ccflags}",
   LIBS    => [ Alien::Libbz2->libs ],
   ...
 );

In your L<FFI::Platypus> script or module:

 use FFI::Platypus;
 use Alien::Libbz2;
 
 my $ffi = FFI::Platypus->new(
   lib => [ Alien::Libbz2->dynamic_libs ],
 );

In your script or module:

 use Alien::Libbz2;
 use Env qw( @PATH );
 
 unshift @PATH, Alien::Libbz2->bin_dir;

=head1 DESCRIPTION

This L<Alien> module provides the necessary compiler and linker flags needed
for using libbz2 in XS.

=head1 METHODS

=head2 cflags



( run in 1.703 second using v1.01-cache-2.11-cpan-13bb782fe5a )