Module::Build::XSUtil - A Module::Build class for building XS modules

- NAME
- SYNOPSIS
- DESCRIPTION
- SEE ALSO
- LICENSE
- AUTHOR

# NAME

Module::Build::XSUtil - A Module::Build class for building XS modules

# SYNOPSIS

Use in your Build.PL

     use strict;
     use warnings;
     use Module::Build::XSUtil;

     my $builder = Module::Build::XSUtil->new(
         dist_name            => 'Your-XS-Module',
         license              => 'perl',
         dist_author          => 'Your Name <yourname@example.com>',
         dist_version_from    => 'lib/Your/XS/Module',
         generate_ppport_h    => 'lib/Your/XS/ppport.h',
         generate_xshelper_h  => 'lib/Your/XS/xshelper.h',
         needs_compiler_c99   => 1,
     );

     $builder->create_build_script();

Use in custom builder module.

     package builder::MyBuilder;
     use strict;
     use warnings;
     use base 'Module::Build::XSUtil';

     sub new {
         my ($class, %args) = @_;
         my $self = $class->SUPER::new(
             %args,
             generate_ppport_h    => 'lib/Your/XS/ppport.h',
             generate_xshelper_h  => 'lib/Your/XS/xshelper.h',
             needs_compiler_c99   => 1,
         );
         return $self;
     }

     1;

# DESCRIPTION

Module::Build::XSUtil is subclass of Module::Build for support building XS modules.

This is a list of a new parameters in the Module::Build::new method:

needs_compiler_c99

  This option checks C99 compiler's availability. If it's not available, Build.PL exits by 0.

needs_compiler_cpp

  This option checks C++ compiler's availability. If it's not available, Build.PL exits by 0.

  In addition, append 'extra_compiler_flags' and 'extra_linker_flags' for C++.

generate_ppport_h

  Genereate ppport.h by Devel::PPPort.

generate_xshelper_h

  Genereate xshelper.h which is a helper header file to include EXTERN.h, perl.h, XSUB.h and ppport.h, and defines some portability stuff which are not supported by ppport.h.

  It is porting from Module::Install::XSUtil.

cc_warnings

  Enable compiler warnings flag. It is enable by default.

-g options

  If invoke Build.PL with '-g' option, It will build with debug options.

# SEE ALSO

Module::Install::XSUtil

# LICENSE

Copyright (C) Hideaki Ohno.

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

# AUTHOR

Hideaki Ohno <hide.o.j55 {at} gmail.com>

Module::Build::XSUtil - A Module::Build class for building XS modules