Dist::Build(3pm)

NAME
Dist::Build - A modern module builder, author tools not included!

VERSION
version 0.025

DESCRIPTION
"Dist::Build" is a Build.PL implementation. Unlike Module::Build::Tiny it is extensible, unlike Module::Build it uses a build graph internally which makes it easy to combine different customizations. It's typically extended by adding a ".pl" script in "planner/". E.g.

 load_extension("Dist::Build::ShareDir");
 dist_sharedir('share', 'Foo-Bar');

 load_extension("Dist::Build::XS");
 load_extension("Dist::Build::XS::Alien");
 add_xs(
   alien         => 'foo',
   extra_sources => [ glob 'src/*.c' ],
 );

PLUGINS

•   Dist::Build::XS

    This plugin enables one to compile XS modules. It has a range of options, and a series of extensions that add to its capabilities.

    •   Dist::Build::XS::Alien

        This is used to link to an Alien library.

    •   Dist::Build::XS::Conf

        This wraps ExtUtils::Builder::Conf to detect headers, libraries and features.

    •   Dist::Build::XS::Import

        This can be used to import headers and flags as exported by Dist::Build::XS::Export.

    •   Dist::Build::XS::PkgConfig

        This adds flags for a given library as configured in its pkgconfig file.

    •   Dist::Build::XS::WriteConstants

        This integrates ExtUtils::Constant into the "add_xs" command.

•   Dist::Build::ShareDir

    This allows one to install sharedirs

•   Dist::Build::XS::Export

    This allows one to export headers and flags, to be imported by Dist::Build::XS::Import

•   Dist::Build::DynamicPrereqs

    This allows one to dynamically evaluate dependencies.

•   Dist::Build::Core

    This module contains all commands used for the base actions of the module.

DELEGATES
All the usual delegates of the ExtUtils::Builder::CPAN::Tool are defined on your planner, and additionally "install_paths".

•   meta

    A CPAN::Meta object representing the "META.json" file.

•   distribution

    The name of the distribution

•   version

    The version of the distribution

•   main_module

    The main module of the distribution.

•   release_status

    The release status of the distribution (e.g. 'stable').

•   perl_path

    The path to the perl executable.

•   config

    The ExtUtils::Config object for this build

•   install_paths

    The ExtUtils::InstallPaths object for this build.

•   is_os(@os_names)

    This returns true if the current operating system matches any of the listed ones.

•   is_os_type($os_type)

    This returns true if the type of the OS matches $os_type. Legal values are "Unix", "Windows" and "VMS".

•   verbose

    The value of the "verbose" command line argument.

•   uninst

    The value of the "uninst" command line argument.

•   jobs

    The value of the "jobs" command line argument.

•   pureperl_only

    The value of the "pureperl_only" command line argument.

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.