use strict;
use warnings;
use 5.006;
use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "Parse, Analyze and Manipulate Perl (without perl)",
"AUTHOR" => "Adam Kennedy <adamk\@cpan.org>",
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "PPI",
"LICENSE" => "perl",
"MIN_PERL_VERSION" => "5.006",
"NAME" => "PPI",
"PREREQ_PM" => {
"Carp" => 0,
"Clone" => "0.30",
"Digest::MD5" => "2.35",
"Exporter" => 0,
"File::Path" => 0,
"File::Spec" => 0,
"IO::String" => "1.07",
"List::Util" => "1.33",
"Params::Util" => "1.00",
"Scalar::Util" => 0,
"Storable" => "2.17",
"Task::Weaken" => 0,
"constant" => 0,
"overload" => 0,
"strict" => 0
},
"TEST_REQUIRES" => {
"B" => 0,
"Class::Inspector" => "1.22",
"Encode" => 0,
"ExtUtils::MakeMaker" => 0,
"File::Copy" => 0,
"File::Spec" => 0,
"File::Spec::Functions" => 0,
"File::Spec::Unix" => 0,
"File::Temp" => 0,
"Test::Deep" => 0,
"Test::More" => "0.88",
"Test::NoWarnings" => 0,
"Test::Object" => "0.07",
"Test::SubCalls" => "1.07",
"if" => 0,
"lib" => 0,
"utf8" => 0,
"warnings" => 0
},
"VERSION" => "1.270",
"test" => {
"TESTS" => "t/*.t"
}
);
my %FallbackPrereqs = (
"B" => 0,
"Carp" => 0,
"Class::Inspector" => "1.22",
"Clone" => "0.30",
"Digest::MD5" => "2.35",
"Encode" => 0,
"Exporter" => 0,
"ExtUtils::MakeMaker" => 0,
"File::Copy" => 0,
"File::Path" => 0,
"File::Spec" => 0,
"File::Spec::Functions" => 0,
"File::Spec::Unix" => 0,
"File::Temp" => 0,
"IO::String" => "1.07",
"List::Util" => "1.33",
"Params::Util" => "1.00",
"Scalar::Util" => 0,
"Storable" => "2.17",
"Task::Weaken" => 0,
"Test::Deep" => 0,
"Test::More" => "0.88",
"Test::NoWarnings" => 0,
"Test::Object" => "0.07",
"Test::SubCalls" => "1.07",
"constant" => 0,
"if" => 0,
"lib" => 0,
"overload" => 0,
"strict" => 0,
"utf8" => 0,
"warnings" => 0
);
requires('File::Spec', is_os('MSWin32') ? '3.2701' : '0.84');
unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
delete $WriteMakefileArgs{TEST_REQUIRES};
delete $WriteMakefileArgs{BUILD_REQUIRES};
$WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
sub _add_prereq {
my ($mm_key, $module, $version_or_range) = @_;
$version_or_range ||= 0;
warn "$module already exists in $mm_key (at version $WriteMakefileArgs{$mm_key}{$module}) -- need to do a sane metamerge!"
if exists $WriteMakefileArgs{$mm_key}{$module}
and $WriteMakefileArgs{$mm_key}{$module} ne '0'
and $WriteMakefileArgs{$mm_key}{$module} ne $version_or_range;
warn "$module already exists in FallbackPrereqs (at version $WriteMakefileArgs{$mm_key}{$module}) -- need to do a sane metamerge!"
if exists $FallbackPrereqs{$module} and $FallbackPrereqs{$module} ne '0'
and $FallbackPrereqs{$module} ne $version_or_range;
$WriteMakefileArgs{$mm_key}{$module} = $FallbackPrereqs{$module} = $version_or_range;
return;
}
sub is_os {
foreach my $os (@_) {
return 1 if $os eq $^O;
}
return 0;
}
sub requires { goto &runtime_requires }
sub runtime_requires {
my ($module, $version_or_range) = @_;
_add_prereq(PREREQ_PM => $module, $version_or_range);
}