The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Dist::Build::XS - An XS implementation for Dist::Build

VERSION

version 0.003

SYNOPSIS

 # planner/xs.pl

 load_module('Dist::Build::XS');
 add_xs(
   module_name   => 'Foo::Bar',
   extra_sources => [ glob 'src/*.c' ],
   libraries     => [ 'foo' ],
 );

DESCRIPTION

This module implements support for XS for Dist::Build.

METHODS

add_xs

This method takes the following named arguments, all optional:

  • module_name

    The name of the module to be compiled. This defaults to $dist_name =~ s/-/::/gr.

  • module_version

    The version of the module, defaulting to the dist version.

  • defines

    This hash contains defines for the C files. E.g. { DEBUG => 1 }.

  • include_dirs

    A list of directories to add to the include path. The root directory of the distribution, the directory the XS file is in and include/ are automatically in this list.

  • extra_sources

    A list of C files to compile with this module.

  • extra_objects

    A list of object files to link with the module.

  • extra_compiler_flags

    Additional flags to feed to the compiler. This can either be an array or a (shell-quoted) string.

  • extra_sources

    Extra C files to compile with this module.

  • library_dirs

    Extra libraries to find libraries in.

  • libraries

    Libraries to link to.

  • extra_linker_flags

    Additional flags to feed to the compiler. This can either be an array or a (shell-quoted) string.

AUTHOR

Leon Timmermans <fawaka@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Leon Timmermans.

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