# ABSTRACT: A modern module builder, author tools not included!
__END__
=pod
=encoding UTF-8
=head1 NAME
Dist::Build - A modern module builder, author tools not included!
=head1 VERSION
version 0.017
=head1 DESCRIPTION
C<Dist::Build> is a Build.PL implementation. Unlike L<Module::Build::Tiny> it is extensible, unlike L<Module::Build> it uses a build graph internally which makes it easy to combine different customizations. It's typically extended by adding a C<.pl> script in C<planner/>. E.g.
load_module("Dist::Build::ShareDir");
dist_sharedir('share', 'Foo-Bar');
load_module("Dist::Build::XS");
load_module("Dist::Build::XS::Alien");
add_xs(
alien => 'foo',
extra_sources => [ glob 'src/*.c' ],
);
=head1 PLUGINS
=over 4
=item * L<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.
=over 4
=item * L<Dist::Build::XS::Alien>
This is used to link to an L<Alien|Alien::Base> library.
=item * L<Dist::Build::XS::Conf>
This wraps L<ExtUtils::Builder::Conf|ExtUtils::Builder::Conf> to detect headers, libraries and features.
=item * L<Dist::Build::XS::Import>
This can be used to import headers and flags as exported by L<Dist::Build::XS::Export|Dist::Build::XS::Export>.
=item * L<Dist::Build::XS::PkgConfig>
This adds flags for a given library as configured in its pkgconfig file.
=item * L<Dist::Build::XS::WriteConstants>
This integrates L<ExtUtils::Constant|ExtUtils::Constant> into the C<add_xs> command.
=back
=item * L<Dist::Build::ShareDir>
This allows one to install sharedirs
=item * L<Dist::Build::XS::Export>
This allows one to export headers and flags, to be imported by L<Dist::Build::XS::Import|Dist::Build::XS::Import>
=item * L<Dist::Build::DynamicPrereqs>
This allows one to dynamically evaluate dependencies.
=item * L<Dist::Build::Core>
This module contains all commands used for the base actions of the module.
=back
=head1 DELEGATES
By default, the following delegates are defined on your L<planner|ExtUtils::Builder::Planner>:
=over 4
=item * meta
A L<CPAN::Meta|CPAN::Meta> object representing the C<META.json> file.
=item * distribution
The name of the distribution
=item * distribution_version
The version of the distribution
=item * main_module
The main module of the distribution.
=item * release_status
The release status of the distribution (e.g. C<'stable'>).
=item * perl_path
The path to the perl executable.
=item * config
The L<ExtUtils::Config|ExtUtils::Config> object for this build
=item * install_paths
The L<ExtUtils::InstallPaths|ExtUtils::InstallPaths> object for this build.
=item * verbose
The value of the C<verbose> command line argument.
=item * uninst
The value of the C<uninst> command line argument.
=item * jobs
The value of the C<jobs> command line argument.
=item * pureperl_only
The value of the C<pureperl_only> command line argument.
=back
=head1 AUTHOR
Leon Timmermans <fawaka@gmail.com>
=head1 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.
=cut
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
go to github issues (only if github is preferred repository)