Provided by: libextutils-builder-perl_0.014-1_all 

NAME
ExtUtils::Builder::Planner - An ExtUtils::Builder Plan builder
VERSION
version 0.014
SYNOPSIS
my $planner = ExtUtils::Builder::Planner->new;
$planner->create_node(
target => 'foo',
dependencies => [ 'bar' ],
actions => \@actions,
);
my $plan = $planner->materialize;
DESCRIPTION
METHODS
add_node($node)
This adds an ExtUtils::Builder::Node to the planner.
create_node(%args)
This creates a new node and adds it to the planner using "add_node". It takes the same named arguments as
"ExtUtils::Builder::Node".
• target
The target of the node. This is mandatory.
• dependencies
The list of dependencies for this node.
• actions
The actions to perform to create or update this node.
• type
This marks the type of the node: "file" or "phony", defaulting to the former.
add_plan($plan)
This adds all nodes in the plan to the planner.
add_delegate($name, $sub)
This adds $sub as a helper method to this planner, with the name $name.
create_phony($target, @dependencies)
This is a helper function that calls "create_node" for a action-free phony target.
load_module($extension, $version, %options)
This adds the delegate from the given module. If $version is defined it will verify if the extension is
at least that version.
new_scope()
This opens a new scope on the planner. It return a child planner that shared the build tree state with
its parent, but any delegated added to it will not be added to the parent.
run_dsl($filename)
This runs $filename as a DSL file. This is a script file that includes Planner methods as functions. For
example:
use strict;
use warnings;
create_node(
target => 'foo',
dependencies => [ 'bar' ],
actions => [
command(qw/echo Hello World!/),
function(module => 'Foo', function => 'bar'),
code(code => 'print "Hello World"'),
],
);
load_module("Foo");
add_foo("a.foo", "a.bar");
This will also add "command", "function" and "code" helper functions that correspond to
ExtUtils::Builder::Action::Command, ExtUtils::Builder::Action::Function and
ExtUtils::Builder::Action::Code respectively.
materialize()
This returns a new ExtUtils::Builder::Plan object based on the planner.
AUTHOR
Leon Timmermans <fawaka@gmail.com>
COPYRIGHT AND LICENSE
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.
perl v5.40.0 2025-02-01 ExtUtils::Builder::Planner(3pm)