table of contents
ExtUtils::Builder::Planner(3pm) | User Contributed Perl Documentation | ExtUtils::Builder::Planner(3pm) |
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.
2025-02-01 | perl v5.40.0 |