I always got full marks on spelling tests when I was a kid... Ok, I'm full of lies...
[catagits/Catalyst-Runtime.git] / Makefile.PL
1 use inc::Module::Install 0.64;
2
3 perl_version '5.008001';
4
5 name 'Catalyst-Runtime';
6 all_from 'lib/Catalyst/Runtime.pm';
7
8 requires 'namespace::clean';
9 requires 'Scope::Upper' => '0.06';
10 requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00800';
11 requires 'Moose' => '0.70';
12 requires 'Carp';
13 requires 'Class::C3::Adopt::NEXT' => '0.07';
14 requires 'Class::MOP';
15 requires 'CGI::Simple::Cookie';
16 requires 'Data::Dump';
17 requires 'File::Modified';
18 requires 'HTML::Entities';
19 requires 'HTTP::Body'    => '1.04'; # makes uploadtmp work
20 requires 'HTTP::Headers' => '1.64';
21 requires 'HTTP::Request';
22 requires 'HTTP::Response';
23 requires 'HTTP::Request::AsCGI' => '0.5';
24 requires 'LWP::UserAgent';
25 requires 'Module::Pluggable' => '3.01';
26 requires 'Path::Class' => '0.09';
27 requires 'Scalar::Util';
28 requires 'Sub::Exporter';
29 requires 'Text::SimpleTable' => '0.03';
30 requires 'Time::HiRes';
31 requires 'Tree::Simple' => '1.15';
32 requires 'Tree::Simple::Visitor::FindByPath';
33 requires 'URI' => '1.35';
34 requires 'Text::Balanced'; # core in 5.8.x but mentioned for completeness
35 requires 'MRO::Compat';
36
37 recommends 'B::Hooks::OP::Check::StashChange';
38
39 test_requires 'Class::Data::Inheritable';
40 test_requires 'Test::MockObject';
41
42 if (   ( exists $ENV{AGGREGATE_TESTS} && !$ENV{AGGREGATE_TESTS})
43     || (!exists $ENV{AGGREGATE_TESTS} && !can_use('Test::Aggregate', '0.34_01'))) {
44     tests join q{ },
45         grep { $_ ne 't/aggregate.t' }
46         map  { glob } qw[t/*.t t/aggregate/*.t];
47 }
48 else {
49     test_requires('Test::Aggregate', '0.34_01');
50 }
51 my @force_build_requires_if_author = qw(
52   Test::NoTabs 
53   Test::Pod 
54   Test::Pod::Coverage 
55   Pod::Coverage
56 );
57
58 if ($Module::Install::AUTHOR) {
59
60   foreach my $module (@force_build_requires_if_author) {
61     build_requires $module;
62   }
63
64
65   if ($^O eq 'darwin') { 
66       my $osx_ver = `/usr/bin/sw_vers -productVersion`;
67       chomp $osx_ver;
68
69       # TAR on 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE
70       # On 10.5 (Leopard) it wants COPYFILE_DISABLE
71       my $attr = $osx_ver eq '10.5' ? 'COPYFILE_DISABLE' : 'COPY_EXTENDED_ATTRIBUTES_DISABLE';
72
73       makemaker_args(dist => { PREOP => qq{\@if [ "\$\$$attr" != "true" ]; then}.
74                                         qq{ echo "You must set the ENV variable $attr to true,"; }.
75                                         ' echo "to avoid getting resource forks in your dist."; exit 255; fi' }); 
76   }
77 }
78
79 install_script glob('script/*.pl');
80 auto_install;
81 WriteAll;
82
83 if ($Module::Install::AUTHOR) {
84
85   # Strip out the author only build_requires from META.yml
86   # Need to do this _after_ WriteAll else it looses track of them
87   Meta->{values}{build_requires} = [ grep {
88     my $ok = 1;
89     foreach my $module (@force_build_requires_if_author) {
90       if ($_->[0] =~ /$module/) {
91         $ok = 0;
92         last;
93       }
94     }
95     $ok;
96   } @{Meta->{values}{build_requires}} ];
97
98   Meta->{values}{resources} = [ 
99     [ 'MailingList', 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
100     [ 'IRC', 'irc://irc.perl.org/#catalyst' ],
101     [ 'license', 'http://dev.perl.org/licenses/' ],
102     [ 'homepage', 'http://dev.catalyst.perl.org/'], 
103     [ 'repository', 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
104   ];
105
106   Meta->write;
107 }
108 print <<"EOF";
109
110  Important:
111
112     This library is for running Catalyst applications.
113
114     For development and use of catalyst.pl and myapp_create.pl, make sure
115     you also install the development tools package Catalyst::Devel.
116
117         perl -MCPANPLUS -e 'install Catalyst::Devel' # or
118         perl -MCPAN -e 'install Catalyst::Devel'
119
120     To get some commonly used plugins, as well as the TT view and DBIC 
121     model, install Task::Catalyst in the same way.
122
123  Have fun!
124 EOF
125
126 check_conflicts();
127
128 # Nicked straight from Moose!
129 sub check_conflicts {
130     # NOTE - This is the version number of the _incompatible_ code,
131     #        not the version number of the fixed version.
132     my %conflicts = (
133         'Catalyst::Plugin::SmartURI'       => '0.029',
134         'CatalystX::CRUD'                  => '0.37',
135         'Catalyst::Action::RenderView'     => '0.07',
136         'Catalyst::Plugin::DebugCookie'    => '0.999002',
137         'Catalyst::Plugin::Authentication' => '0.100091',
138         'CatalystX::Imports'               => '0.03',
139         'Catalyst::Plugin::HashedCookies'  => '1.03',
140     );
141
142     my $found = 0;
143     for my $mod ( sort keys %conflicts ) {
144         eval "require($mod)";
145         next if $@;
146
147         my $installed = $mod->VERSION();
148         if ( $installed le $conflicts{$mod} ) {
149
150             print <<"EOF";
151
152 ***
153     This version of Catalyst conflicts with the version of
154     $mod ($installed) you have installed.
155
156     You will need to upgrade $mod after installing
157     this version of Catalyst.
158 ***
159
160 EOF
161
162             $found = 1;
163         }
164     }
165
166     return unless $found;
167
168     # More or less copied from Module::Build
169     return if $ENV{PERL_MM_USE_DEFAULT};
170     return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
171
172     sleep 4;
173 }