oracular (3) Dist::Build::XS.3pm.gz

Provided by: libdist-build-perl_0.010-1_all bug

NAME

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

VERSION

       version 0.010

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" unless "file" is
           given, in which case the name is derived from the path.

       •   module_version

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

       •   file

           The name of the XS file. By default it's derived from the $module_name, e.g. "lib/Foo/Bar.xs" for
           "Foo::Bar".

       •   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. For the xs file the directory it is in is
           automatically added to this list.

       •   extra_sources

           A list of C files to compile with this module. Instead of just a name, entries can also be a hash
           with the following entries:

           •   source

               The name of the input file. Mandatory.

           •   object

               The name of the object that will be compiled. Will be derive from the source name by default.

           •   include_dirs

               An array containing additional include directories for this objects

           •   defines

               A hash containing additional defines for this object.

           •   flags

               An array containing additional flags for this compilation.

       •   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>

       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.