calculate mro module once
[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,
70098115 29 ($] >= 5.008004 ? () : ('namespace::clean' => 0)),
6866984e 30 } },
31 },
32 resources => {
33 # r/w: gitmo@git.shadowcat.co.uk:Role-Tiny.git
34 repository => {
35 url => 'git://git.shadowcat.co.uk/gitmo/Role-Tiny.git',
36 web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Role-Tiny.git',
37 type => 'git',
38 },
39 bugtracker => {
40 mailto => 'bug-Role-Tiny@rt.cpan.org',
41 web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Role-Tiny',
42 },
43 x_IRC => 'irc://irc.perl.org/#moose',
44 license => [ 'http://dev.perl.org/licenses/' ],
45 },
46 no_index => {
47 directory => [ 't', 'xt' ]
48 },
bb6d1b87 49);
50
6866984e 51my %MM_ARGS = ();
52
53##############################################################################
54require ExtUtils::MakeMaker;
55ExtUtils::MakeMaker->import;
56
57(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
58
bb6d1b87 59# have to do this since old EUMM dev releases miss the eval $VERSION line
6866984e 60my $eumm_version = eval $ExtUtils::MakeMaker::VERSION;
61my $mymeta_works = $eumm_version >= 6.57_07;
62my $mymeta = $eumm_version >= 6.57_02;
63my $has_test_requires = $eumm_version >= 6.63_03;
64
65my %configure_deps = %{$META{prereqs}{configure}{requires}};
66my %build_deps = %{$META{prereqs}{build}{requires}};
67my %test_deps = %{$META{prereqs}{test}{requires}};
68my %run_deps = %{$META{prereqs}{runtime}{requires}};
69
70my $min_perl_version = delete $run_deps{perl};
71
72if (not $has_test_requires) {
73 %build_deps = (%build_deps, %test_deps);
74 %test_deps = ();
75}
76if (not $mymeta_works) {
77 %run_deps = (%run_deps, %build_deps);
78 %build_deps = ();
79}
80
81(my $module_name = $META{name}) =~ s/-/::/g;
82(my $module_file = "lib/$module_name.pm") =~ s{::}{/}g;
bb6d1b87 83
6d71fae7 84WriteMakefile(
6866984e 85 NAME => $module_name,
86 VERSION_FROM => $module_file,
87 LICENSE => $META{license},
88
89 $eumm_version >= 6.47_01 && $min_perl_version
90 ? ( MIN_PERL_VERSION => $min_perl_version ) : (),
91 $eumm_version >= 6.51_03
92 ? ( CONFIGURE_REQUIRES => \%configure_deps ) : (),
93 $eumm_version >= 6.55_01
94 ? ( BUILD_REQUIRES => \%build_deps ) : (),
95 $eumm_version >= 6.63_03
96 ? ( TEST_REQUIRES => \%test_deps ) : (),
97 PREREQ_PM => \%run_deps,
98
40c86119 99 ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()),
6866984e 100 -f 'META.yml' ? () : (META_ADD => { 'meta-spec' => { version => 2 }, %META }),
5f5db57f 101
6866984e 102 %MM_ARGS,
6d71fae7 103);