1#line 1
2package Module::Install::MakeMaker;
3
4use strict;
5use ExtUtils::MakeMaker   ();
6use Module::Install::Base ();
7
8use vars qw{$VERSION @ISA $ISCORE};
9BEGIN {
10	$VERSION = '1.00';
11	@ISA     = 'Module::Install::Base';
12	$ISCORE  = 1;
13}
14
15my $makefile = undef;
16
17sub WriteMakefile {
18    my ($self, %args) = @_;
19    $makefile = $self->load('Makefile');
20
21    # mapping between MakeMaker and META.yml keys
22    $args{MODULE_NAME} = $args{NAME};
23    unless ( $args{NAME} = $args{DISTNAME} or ! $args{MODULE_NAME} ) {
24        $args{NAME} = $args{MODULE_NAME};
25        $args{NAME} =~ s/::/-/g;
26    }
27
28    foreach my $key ( qw{name module_name version version_from abstract author installdirs} ) {
29        my $value = delete($args{uc($key)}) or next;
30        $self->$key($value);
31    }
32
33    if (my $prereq = delete($args{PREREQ_PM})) {
34        while (my($k,$v) = each %$prereq) {
35            $self->requires($k,$v);
36        }
37    }
38
39    if (my $prereq = delete($args{BUILD_REQUIRES})) {
40        while (my($k,$v) = each %$prereq) {
41            $self->build_requires($k,$v);
42        }
43    }
44
45    # put the remaining args to makemaker_args
46    $self->makemaker_args(%args);
47}
48
49END {
50    if ( $makefile ) {
51        $makefile->write;
52        $makefile->Meta->write;
53    }
54}
55
561;
57