]> git.sur5r.net Git - i3/i3/blob - AnyEvent-I3/Makefile.PL
29a442f4d3e5aeca12af39da4ce87bc045559192
[i3/i3] / AnyEvent-I3 / Makefile.PL
1 use strict;
2 use warnings;
3
4 use 5.006;
5 use ExtUtils::MakeMaker;
6
7 if ( $^O eq 'MSWin32' ) {
8     die "AnyEvent::I3 cannot be used on win32 (unix sockets are missing)";
9 }
10
11 my %meta = (
12     name        => 'AnyEvent-I3',
13     author      => 'Michael Stapelberg, C<< <michael at i3wm.org> >>',
14     license     => ['perl'],
15     'meta-spec' => { version => 2 },
16     resources   => {
17         repository => {
18             url  => 'git://github.com/i3/i3',
19             web  => 'https://github.com/i3/i3',
20             type => 'git',
21         },
22         bugtracker => {
23             web => 'https://github.com/i3/i3/issues',
24         },
25         homepage => 'https://i3wm.org/',
26         license  => ['http://dev.perl.org/licenses'],
27     },
28 );
29
30 my %requirements = (
31     configure_requires => {
32         'ExtUtils::MakeMaker' => 6.36,
33     },
34     build_requires => {
35         'ExtUtils::MakeMaker' => 6.36
36     },
37     runtime_requires => {
38         'AnyEvent'         => 0,
39         'AnyEvent::Handle' => 0,
40         'AnyEvent::Socket' => 0,
41         'JSON::XS'         => 0,
42     },
43     test_requires => {
44         'Test::More' => 0.80,
45     },
46 );
47
48 my %merged_requirements = (
49     'ExtUtils::MakeMaker' => 0,
50     'AnyEvent'            => 0,
51     'AnyEvent::Handle'    => 0,
52     'AnyEvent::Socket'    => 0,
53     'JSON::XS'            => 0,
54     'Test::More'          => 0.80,
55 );
56
57 $meta{prereqs}{configure}{requires} = $requirements{configure_requires};
58 $meta{prereqs}{build}{requires}     = $requirements{build_requires};
59 $meta{prereqs}{runtime}{requires}   = $requirements{runtime_requires};
60 $meta{prereqs}{test}{requires}      = $requirements{test_requires};
61
62 my %MM_Args = (
63     AUTHOR           => 'Michael Stapelberg',
64     NAME             => 'AnyEvent::I3',
65     DISTNAME         => 'AnyEvent-I3',
66     EXE_FILES        => [],
67     MIN_PERL_VERSION => '5.006',
68     VERSION_FROM     => 'lib/AnyEvent/I3.pm',
69     ABSTRACT_FROM    => 'lib/AnyEvent/I3.pm',
70     test             => {
71         TESTS => 't/*.t',
72     },
73 );
74
75 sub is_eumm {
76     eval { ExtUtils::MakeMaker->VERSION( $_[0] ) };
77 }
78
79 is_eumm(6.30) and $MM_Args{LICENSE} = $meta{license}[0];
80 is_eumm(6.47_01) or delete $MM_Args{MIN_PERL_VERSION};
81 is_eumm(6.52)
82   and $MM_Args{CONFIGURE_REQUIRES} = $requirements{configure_requires};
83
84 is_eumm(6.57_02) and !is_eumm(6.57_07) and $MM_Args{NO_MYMETA} = 1;
85
86 if ( is_eumm(6.63_03) ) {
87     %MM_Args = (
88         %MM_Args,
89         TEST_REQUIRES  => $requirements{test_requires},
90         BUILD_REQUIRES => $requirements{build_requires},
91         PREREQ_PM      => $requirements{runtime_requires},
92     );
93 }
94 else {
95     $MM_Args{PREREQ_PM} = \%merged_requirements;
96 }
97 unless ( -f 'META.yml' ) {
98     $MM_Args{META_ADD} = \%meta;
99 }
100 WriteMakefile(%MM_Args);