File Coverage

blib/lib/Perl/Dist/Vanilla.pm
Criterion Covered Total %
statement 10 12 83.3
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 14 16 87.5


line stmt bran cond sub pod time code
1             package Perl::Dist::Vanilla;
2              
3 1     1   1757 use 5.006;
  1         5  
  1         59  
4 1     1   9 use strict;
  1         3  
  1         42  
5 1     1   9 use warnings;
  1         3  
  1         41  
6 1     1   71 use Perl::Dist;
  0            
  0            
7              
8             use vars qw{$VERSION @ISA};
9             BEGIN {
10             $VERSION = '19';
11             @ISA = 'Perl::Dist';
12             }
13              
14              
15              
16              
17              
18             #####################################################################
19             # Upstream Binary Packages
20              
21             my %PACKAGES = (
22             # Disabled as the generate test failures in 5.10.0
23             # 'mingw-runtime' => 'mingw-runtime-3.14.tar.gz',
24             # 'w32api' => 'w32api-3.11.tar.gz',
25             );
26              
27             sub binary_file {
28             $PACKAGES{$_[1]} or
29             shift->SUPER::binary_file(@_);
30             }
31              
32              
33              
34              
35              
36             #####################################################################
37             # Configuration
38              
39             # Apply some default paths
40             sub new {
41             my $class = shift;
42              
43             # Prepend defaults
44             my $self = $class->SUPER::new(
45             app_id => 'vanillaperl',
46             app_name => 'Vanilla Perl',
47             app_publisher => 'Vanilla Perl Project',
48             app_publisher_url => 'http://vanillaperl.org/',
49             image_dir => 'C:\\vanilla',
50              
51             # Always generate both forms
52             exe => 1,
53             zip => 1,
54             @_,
55             );
56              
57             return $self;
58             }
59              
60             # Lazily default the full name
61             sub app_ver_name {
62             $_[0]->{app_ver_name} or
63             $_[0]->app_name
64             . ($_[0]->portable ? ' Portable' : '')
65             . ' ' . $_[0]->perl_version_human
66             . ' Build ' . $_[0]->VERSION;
67             }
68              
69             # Lazily default the file name
70             sub output_base_filename {
71             $_[0]->{output_base_filename} or
72             'vanilla-perl'
73             . ($_[0]->portable ? '-portable' : '')
74             . '-' . $_[0]->perl_version_human
75             . '-build-' . $_[0]->VERSION;
76             }
77              
78              
79              
80              
81              
82             #####################################################################
83             # Installation Script
84              
85             sub install_perl_5100_bin {
86             my $self = shift;
87             $self->SUPER::install_perl_5100_bin(@_);
88              
89             # Overwrite the CPAN config to be relocatable
90             if ( $self->portable ) {
91             $self->install_file(
92             share => 'Perl-Dist vanilla/perl-5.10.0/lib/Config.pm',
93             install_to => 'perl/lib/Config.pm',
94             );
95             $self->install_file(
96             share => 'Perl-Dist vanilla/perl-5.10.0/lib/Config_heavy.pl',
97             install_to => 'perl/lib/Config_heavy.pl',
98             );
99             $self->install_file(
100             share => 'Perl-Dist vanilla/perl-5.10.0/lib/CPAN/Config.pm',
101             install_to => 'perl/lib/CPAN/Config.pm',
102             );
103             }
104              
105             return 1;
106             }
107              
108             sub install_c_libraries {
109             my $self = shift;
110             $self->SUPER::install_c_libraries(@_);
111              
112             # Install Expat (which exercises install_par)
113             $self->install_expat;
114              
115             return 1;
116             }
117              
118             sub install_perl_modules {
119             my $self = shift;
120             $self->SUPER::install_perl_modules(@_);
121              
122             # Upgrade to the latest version
123             $self->install_module(
124             name => 'CGI',
125             );
126              
127             return 1;
128             }
129              
130             # Delete from additional compiler stuff for non-Microsoft platforms
131             sub remove_waste {
132             my $self = shift;
133             $self->SUPER::remove_waste(@_);
134              
135             $self->trace("Removing unneeded compiler templates...\n");
136             foreach my $dir (
137             [ qw{ c bin startup mac } ],
138             [ qw{ c bin startup os2 } ],
139             [ qw{ c bin startup unix } ],
140             [ qw{ c bin startup templates mac } ],
141             [ qw{ c bin startup templates os2 } ],
142             [ qw{ c bin startup templates unix } ],
143             ) {
144             File::Remove::remove( \1, $self->dir(@$dir) );
145             }
146              
147             return 1;
148             }
149              
150             sub patch_include_path {
151             my $self = shift;
152             my $include = $self->SUPER::patch_include_path;
153              
154             # Add the extra vanilla directory
155             my $perl = $self->perl_version_human;
156             my $share = File::ShareDir::dist_dir('Perl-Dist');
157             my $path = File::Spec->catdir(
158             $share, 'vanilla',
159             );
160             unless ( -d $path ) {
161             die("Directory $path does not exist");
162             }
163             return [ @$include, $path ];
164             }
165              
166             1;
167              
168             __END__