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