Scroll to navigation

Dist::Build(3pm) User Contributed Perl Documentation Dist::Build(3pm)

NAME

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

VERSION

version 0.020

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

By default, the following delegates are defined on your planner:

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

2025-05-11 perl v5.40.1