Dist::Build(3pm)

πŸŽ€ NAME πŸŽ€

Dist::Build β€” A modern module builder, author tools not included!

okay bestie, welcome to the Dist::Build(3pm) manual. The manual name is folded in right here at the top instead of copied as a header line, and we're already slaying βœ¨πŸ’…

✨ VERSION ✨

version 0.028 β€” yes ma'am, that's the one πŸŽ€

🌸 DESCRIPTION 🌸

Okay so 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' ],
);

That's the whole customization vibe, and it's giving build-graph main character energy. πŸ¦‹

πŸ¦‹ 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.
  • 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> β€” that's the author, bestie 🫢

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.


that's the whole page, bestie 🫢 β€” source/version perl v5.40.1, date 2026-03-21, and it's the Dist::Build(3pm) manual from the User Contributed Perl Documentation corner of the internet. periodt πŸ’…
πŸ“¦ where this page comes from