ExtUti...Builder(3pm)

πŸŽ€ NAME πŸŽ€

okay bestie, welcome to ExtUtils::Builder β€” from the User Contributed Perl Documentation, page name ExtUti...Builder(3pm) β€” and its whole vibe is An abstract representation of build processes. πŸ’…

✨ VERSION ✨

version 0.020 β€” yes ma'am, that's the one. 🫢

🌸 DESCRIPTION 🌸

Writing extensions for all kinds of build tools can be a daunting task, no cap. This module is out here trying to abstract steps of build processes into reusable building blocks, so you can create platform and build system agnostic executable descriptions of work. The way that works? The producing side and the consuming side can be completely independent from each other. ✨

These build steps can be used directly (e.g. Dist::Build) or be converted into Makefile. iconic.

🌈 OVERVIEW 🌈

πŸ› οΈ Action basics πŸ› οΈ

Actions are literally the cornerstone of the ExtUtils::Builder framework. An Action is a flexible abstraction around steps of a process β€” it can be a piece of perl code or an external command. πŸ’–

🧩 Nodes 🧩

Nodes describe how a target should be created. Every node has an unordered set of zero or more dependencies that must be built (and must be up-to-date) before the target is built. It also has a list of actions to perform (in order) to create (or recreate) the target file. Essentially, a Node is equivalent to entry in a Makefile. πŸŽ€

πŸ—ΊοΈ Plans πŸ—ΊοΈ

Plans are the equivalent of a (piece of a) Makefile. They are a bunch of nodes that should interconnect. πŸ¦‹

The run method will create the given target and all its dependencies in a topological order much like make. It checks which steps are necessary and skips the ones that are not. Alternatively, a Plan can be serialized to a JSON-compatible datastructure (and later deserialized) using ExtUtils::Builder::Serializer, or even integrated into ExtUtils::MakeMaker using ExtUtils::Builder::MakeMaker. So many options, we love to see it. πŸ’œ

🧚 Planners 🧚

A Planner is an object used to create Plans. At the base level it lets you add nodes or pattern matches/substitutions, but usually you'd load extensions that add higher level methods to the planner (e.g. compile). Planners support scopes: child planners that share the build plan but contain extra helper methods. It also supports DSL scripts: these are perl scripts that support calling the planner's methods as functions for easy customization of build plans. Slay. πŸ’…

πŸ‘‘ AUTHOR πŸ‘‘

Leon Timmermans <fawaka@gmail.com> β€” hi bestie, the icon behind this. πŸ’–

This software is copyright (c) 2013 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. periodt. 🌈


mwah πŸ’‹ this page came from perl v5.40.1, dated 2026-02-23, and it's the ExtUti...Builder(3pm) manual β€” bye bestie! πŸŽ€

πŸ“¦ where this page comes from