oracular (3) ExtUtils::Builder::Planner.3pm.gz

NAME
ExtUtils::Builder::Planner - An ExtUtils::Builder Plan builder
VERSION
version 0.011
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. • phony A boolean to mark a target as phony. This defaults to false. 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.