X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.PL;h=dc36dd2af8e751011459c6e0f08c4863c3e8a3ea;hb=1c93a64319ca3ada66ddceb86bb537e2a7af5893;hp=c99c9e7ff05ce333c79b016bb6bbf1caccfcd623;hpb=6d71fae7388c406fe3a6b6e0eefa478827841d00;p=gitmo%2FRole-Tiny.git diff --git a/Makefile.PL b/Makefile.PL index c99c9e7..dc36dd2 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,11 +1,103 @@ use strict; use warnings FATAL => 'all'; -use ExtUtils::MakeMaker; +use 5.006; + +my %META = ( + name => 'Role-Tiny', + license => 'perl_5', + prereqs => { + configure => { requires => { + 'ExtUtils::MakeMaker' => 0, + } }, + build => { requires => { + } }, + test => { requires => { + 'Test::More' => 0.96, + 'Test::Fatal' => 0.003, + } }, + runtime => { + requires => { + Exporter => '5.57', + ($] >= 5.010 ? () : ('MRO::Compat' => 0)), + }, + recommends => { + 'Class::Method::Modifiers' => 1.05, + }, + }, + develop => { requires => { + Moo => 0, + ($] >= 5.008004 ? () : ('namespace::clean' => 0)), + } }, + }, + resources => { + # r/w: gitmo@git.shadowcat.co.uk:Role-Tiny.git + repository => { + url => 'git://git.shadowcat.co.uk/gitmo/Role-Tiny.git', + web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Role-Tiny.git', + type => 'git', + }, + bugtracker => { + mailto => 'bug-Role-Tiny@rt.cpan.org', + web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Role-Tiny', + }, + x_IRC => 'irc://irc.perl.org/#moose', + license => [ 'http://dev.perl.org/licenses/' ], + }, + no_index => { + directory => [ 't', 'xt' ] + }, +); + +my %MM_ARGS = (); + +############################################################################## +require ExtUtils::MakeMaker; +ExtUtils::MakeMaker->import; + +(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml'; + +# have to do this since old EUMM dev releases miss the eval $VERSION line +my $eumm_version = eval $ExtUtils::MakeMaker::VERSION; +my $mymeta_works = $eumm_version >= 6.57_07; +my $mymeta = $eumm_version >= 6.57_02; +my $has_test_requires = $eumm_version >= 6.63_03; + +my %configure_deps = %{$META{prereqs}{configure}{requires}}; +my %build_deps = %{$META{prereqs}{build}{requires}}; +my %test_deps = %{$META{prereqs}{test}{requires}}; +my %run_deps = %{$META{prereqs}{runtime}{requires}}; + +my $min_perl_version = delete $run_deps{perl}; + +if (not $has_test_requires) { + %build_deps = (%build_deps, %test_deps); + %test_deps = (); +} +if (not $mymeta_works) { + %run_deps = (%run_deps, %build_deps); + %build_deps = (); +} + +(my $module_name = $META{name}) =~ s/-/::/g; +(my $module_file = "lib/$module_name.pm") =~ s{::}{/}g; WriteMakefile( - NAME => 'Moo', - VERSION_FROM => 'lib/Moo.pm', - ABSTRACT_FROM => 'lib/Moo.pm', - AUTHOR => 'Matt S Trout ', - LICENSE => 'perl', + NAME => $module_name, + VERSION_FROM => $module_file, + LICENSE => $META{license}, + + $eumm_version >= 6.47_01 && $min_perl_version + ? ( MIN_PERL_VERSION => $min_perl_version ) : (), + $eumm_version >= 6.51_03 + ? ( CONFIGURE_REQUIRES => \%configure_deps ) : (), + $eumm_version >= 6.55_01 + ? ( BUILD_REQUIRES => \%build_deps ) : (), + $eumm_version >= 6.63_03 + ? ( TEST_REQUIRES => \%test_deps ) : (), + PREREQ_PM => \%run_deps, + + ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()), + -f 'META.yml' ? () : (META_ADD => { 'meta-spec' => { version => 2 }, %META }), + + %MM_ARGS, );