1#line 1 2package Module::Install::WriteAll; 3 4use strict; 5use Module::Install::Base (); 6 7use vars qw{$VERSION @ISA $ISCORE}; 8BEGIN { 9 $VERSION = '1.01'; 10 @ISA = qw{Module::Install::Base}; 11 $ISCORE = 1; 12} 13 14sub WriteAll { 15 my $self = shift; 16 my %args = ( 17 meta => 1, 18 sign => 0, 19 inline => 0, 20 check_nmake => 1, 21 @_, 22 ); 23 24 $self->sign(1) if $args{sign}; 25 $self->admin->WriteAll(%args) if $self->is_admin; 26 27 $self->check_nmake if $args{check_nmake}; 28 unless ( $self->makemaker_args->{PL_FILES} ) { 29 # XXX: This still may be a bit over-defensive... 30 unless ($self->makemaker(6.25)) { 31 $self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL'; 32 } 33 } 34 35 # Until ExtUtils::MakeMaker support MYMETA.yml, make sure 36 # we clean it up properly ourself. 37 $self->realclean_files('MYMETA.yml'); 38 39 if ( $args{inline} ) { 40 $self->Inline->write; 41 } else { 42 $self->Makefile->write; 43 } 44 45 # The Makefile write process adds a couple of dependencies, 46 # so write the META.yml files after the Makefile. 47 if ( $args{meta} ) { 48 $self->Meta->write; 49 } 50 51 # Experimental support for MYMETA 52 if ( $ENV{X_MYMETA} ) { 53 if ( $ENV{X_MYMETA} eq 'JSON' ) { 54 $self->Meta->write_mymeta_json; 55 } else { 56 $self->Meta->write_mymeta_yaml; 57 } 58 } 59 60 return 1; 61} 62 631; 64