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

 my $cflags = Alien::Libbz2->cflags;

Returns the C compiler flags.

=head2 libs

 my $libs = Alien::Libbz2->libs;

Returns the linker flags.

=head1 HELPERS

=head2 bzip2

 %{bzip2}

Returns the name of the bzip2 command.  Usually just C<bzip2>.

=head1 SEE ALSO

=over 4

=item L<Alien::bz2>

Another libbz2 L<Alien> module, but not implemented with L<Alien::Base>.

=item L<Compress::Bzip2>

=item L<Compress::Raw::Bzip2>

=item L<IO::Compress::Bzip2>

=back

=head1 AUTHOR

Graham Ollis <plicease@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut



( run in 0.723 second using v1.01-cache-2.11-cpan-9288abcf80b )