use strict; use warnings; use ExtUtils::MakeMaker; my %build_requires = ( 'Test::More' => 0.98, ); my %requires = ( 'strictures' => 1, 'JSON' => 0, ); # have to do this since old EUMM dev releases miss the eval $VERSION line my $mymeta_works = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.5707 }; my $mymeta = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.5702 }; WriteMakefile( NAME => 'JSON-Diffable', VERSION_FROM => 'lib/JSON/Diffable.pm', PREREQ_PM => { %requires, ($mymeta_works ? () : (%build_requires)), }, ($mymeta_works ? ( # BUILD_REQUIRES makes MYMETA right, requires stops META being wrong BUILD_REQUIRES => \%build_requires, META_ADD => { requires => \%requires } ) : ( # META_ADD both to get META right - only Makefile written META_ADD => { requires => \%requires, build_requires => \%build_requires, } ) ), ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()), LICENSE => 'perl', );;