The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings FATAL => 'all';
use ExtUtils::MakeMaker;

(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';

my %build_requires = (
    'Test::More'        => 0.98,
);

my %requires = (
    'strictures'        => 1,
    'JSON::MaybeXS'     => 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) : ()),
);