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