Source: libextutils-builder-perl Standards-Version: 4.7.3 Maintainer: Debian Perl Group Uploaders: gregor herrmann , Section: perl Testsuite: autopkgtest-pkg-perl Build-Depends: debhelper-compat (= 13), Build-Depends-Indep: libextutils-config-perl (>= 0.009) , libextutils-helpers-perl (>= 0.027) , libscalar-list-utils-perl , libtest-simple-perl , libversion-perl , perl, Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libextutils-builder-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libextutils-builder-perl.git Homepage: https://metacpan.org/release/ExtUtils-Builder Package: libextutils-builder-perl Architecture: all Depends: ${misc:Depends}, ${perl:Depends}, libextutils-config-perl (>= 0.009), libextutils-helpers-perl (>= 0.027), libscalar-list-utils-perl, libversion-perl, Description: abstract representation of build processes Writing extensions for various build tools can be a daunting task. ExtUtils::Builder tries to abstract steps of build processes into reusable building blocks for creating platform and build system agnostic executable descriptions of work. This allows producing and consuming sides to be completely independent from each other. . These build steps can be used directly (e.g. Dist::Build) or be converted into Makefile. . Actions are the cornerstone of the ExtUtils::Builder framework. It is a flexible abstraction around steps of a process, it can be a piece of perl code or an external command. . Nodes describe how a target should be created. Every node has an unordered set of zero or more dependencies that must be build (and must be up-to-date) before the target is build. 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 are the equivalent of a (piece of a) Makefile. They are a bunch of nodes that should interconnect. . A Planner is an object used to create Plans. At the base level it allows you to add nodes or pattern matches/substitutions, but usually one would 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.