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