more thorough testing that overloads aren't overwritten
[gitmo/Role-Tiny.git] / Makefile.PL
CommitLineData
6d71fae7 1use strict;
2use warnings FATAL => 'all';
cde4d060 3use 5.006;
6d71fae7 4
6866984e 5my %META = (
6 name => 'Role-Tiny',
7 license => 'perl_5',
8 prereqs => {
9 configure => { requires => {
10 'ExtUtils::MakeMaker' => 0,
11 } },
12 build => { requires => {
13 } },
14 test => { requires => {
15 'Test::More' => 0.96,
16 'Test::Fatal' => 0.003,
17 } },
18 runtime => {
19 requires => {
20 Exporter => '5.57',
21 ($] >= 5.010 ? () : ('MRO::Compat' => 0)),
22 },
23 recommends => {
24 'Class::Method::Modifiers' => 1.05,
25 },
26 },
27 develop => { requires => {
28 Moo => 0,
29 } },
30 },
31 resources => {
32 # r/w: gitmo@git.shadowcat.co.uk:Role-Tiny.git
33 repository => {
34 url => 'git://git.shadowcat.co.uk/gitmo/Role-Tiny.git',
35 web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Role-Tiny.git',
36 type => 'git',
37 },
38 bugtracker => {
39 mailto => 'bug-Role-Tiny@rt.cpan.org',
40 web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Role-Tiny',
41 },
42 x_IRC => 'irc://irc.perl.org/#moose',
43 license => [ 'http://dev.perl.org/licenses/' ],
44 },
45 no_index => {
46 directory => [ 't', 'xt' ]
47 },
bb6d1b87 48);
49
6866984e 50my %MM_ARGS = ();
51
52##############################################################################
53require ExtUtils::MakeMaker;
54ExtUtils::MakeMaker->import;
55
56(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
57
bb6d1b87 58# have to do this since old EUMM dev releases miss the eval $VERSION line
6866984e 59my $eumm_version = eval $ExtUtils::MakeMaker::VERSION;
60my $mymeta_works = $eumm_version >= 6.57_07;
61my $mymeta = $eumm_version >= 6.57_02;
62my $has_test_requires = $eumm_version >= 6.63_03;
63
64my %configure_deps = %{$META{prereqs}{configure}{requires}};
65my %build_deps = %{$META{prereqs}{build}{requires}};
66my %test_deps = %{$META{prereqs}{test}{requires}};
67my %run_deps = %{$META{prereqs}{runtime}{requires}};
68
69my $min_perl_version = delete $run_deps{perl};
70
71if (not $has_test_requires) {
72 %build_deps = (%build_deps, %test_deps);
73 %test_deps = ();
74}
75if (not $mymeta_works) {
76 %run_deps = (%run_deps, %build_deps);
77 %build_deps = ();
78}
79
80(my $module_name = $META{name}) =~ s/-/::/g;
81(my $module_file = "lib/$module_name.pm") =~ s{::}{/}g;
bb6d1b87 82
6d71fae7 83WriteMakefile(
6866984e 84 NAME => $module_name,
85 VERSION_FROM => $module_file,
86 LICENSE => $META{license},
87
88 $eumm_version >= 6.47_01 && $min_perl_version
89 ? ( MIN_PERL_VERSION => $min_perl_version ) : (),
90 $eumm_version >= 6.51_03
91 ? ( CONFIGURE_REQUIRES => \%configure_deps ) : (),
92 $eumm_version >= 6.55_01
93 ? ( BUILD_REQUIRES => \%build_deps ) : (),
94 $eumm_version >= 6.63_03
95 ? ( TEST_REQUIRES => \%test_deps ) : (),
96 PREREQ_PM => \%run_deps,
97
40c86119 98 ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()),
6866984e 99 -f 'META.yml' ? () : (META_ADD => { 'meta-spec' => { version => 2 }, %META }),
5f5db57f 100
6866984e 101 %MM_ARGS,
6d71fae7 102);