9e656f521365bd71ea76357a27b5ec65c4dd5c99
[gitmo/Role-Tiny.git] / Makefile.PL
1 use strict;
2 use warnings FATAL => 'all';
3 use 5.006;
4
5 my %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   },
48 );
49
50 my %MM_ARGS = ();
51
52 ##############################################################################
53 require ExtUtils::MakeMaker;
54 ExtUtils::MakeMaker->import;
55
56 (do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
57
58 # have to do this since old EUMM dev releases miss the eval $VERSION line
59 my $eumm_version = eval $ExtUtils::MakeMaker::VERSION;
60 my $mymeta_works      = $eumm_version >= 6.57_07;
61 my $mymeta            = $eumm_version >= 6.57_02;
62 my $has_test_requires = $eumm_version >= 6.63_03;
63
64 my %configure_deps = %{$META{prereqs}{configure}{requires}};
65 my %build_deps     = %{$META{prereqs}{build}{requires}};
66 my %test_deps      = %{$META{prereqs}{test}{requires}};
67 my %run_deps       = %{$META{prereqs}{runtime}{requires}};
68
69 my $min_perl_version = delete $run_deps{perl};
70
71 if (not $has_test_requires) {
72   %build_deps = (%build_deps, %test_deps);
73   %test_deps = ();
74 }
75 if (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;
82
83 WriteMakefile(
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
98   ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()),
99   -f 'META.yml' ? () : (META_ADD => { 'meta-spec' => { version => 2 }, %META }),
100
101   %MM_ARGS,
102 );