import Devel-Size 0.66 from CPAN
[p5sagit/Devel-Size.git] / inc / Module / Install / Build.pm
CommitLineData
0430b7f7 1#line 1
2package Module::Install::Build;
3
4use strict;
5use Module::Install::Base;
6
7use vars qw{$VERSION $ISCORE @ISA};
8BEGIN {
9 $VERSION = '0.64';
10 $ISCORE = 1;
11 @ISA = qw{Module::Install::Base};
12}
13
14sub Build { $_[0] }
15
16sub write {
17 my $self = shift;
18 die "Build->write() takes no arguments\n" if @_;
19
20 my %args;
21 my $build;
22
23 $args{dist_name} = $self->name || $self->determine_NAME($self->{args});
24 $args{license} = $self->license;
25 $args{test_files} = $self->tests;
26 $args{dist_version} = $self->version || $self->determine_VERSION($self->{args});
27 $args{dist_abstract} = $self->abstract;
28 $args{dist_author} = $self->author;
29 $args{sign} = $self->sign;
30 $args{no_index} = $self->no_index;
31
32 foreach my $key (qw(build_requires requires recommends conflicts)) {
33 my $val = eval "\$self->$key" or next;
34 $args{$key} = { map @$_, @$val };
35 }
36
37 %args = map {($_, $args{$_})} grep {defined($args{$_})} keys %args;
38
39 require Module::Build;
40 $build = Module::Build->new(%args);
41 $build->add_to_cleanup(split /\s+/, $self->clean_files);
42 $build->create_build_script;
43}
44
45sub ACTION_reset {
46 my ($self) = @_;
47 die "XXX - Can't get this working yet";
48 require File::Path;
49 warn "Removing inc\n";
50 rmpath('inc');
51}
52
53sub ACTION_dist {
54 my ($self) = @_;
55 die "XXX - Can't get this working yet";
56}
57
58# <ingy> DrMath: is there an OO way to add actions to Module::Build??
59# <DrMath> ingy: yeah
60# <DrMath> ingy: package MyBuilder; use w(Module::Build; @ISA = qw(w(Module::Build); sub ACTION_ingy
61# {...}
62# <DrMath> ingy: then my $build = new MyBuilder( ...parameters... );
63# $build->write_build_script;
64
651;
66
67__END__
68
69#line 180