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