/
Build.PL
72 lines (56 loc) · 1.64 KB
/
Build.PL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
use 5.006;
use strict;
use warnings;
use Module::Build;
my $force_pp = grep { $_ eq '--pp' } @ARGV;
my @pp = _make_pp_tests();
my $builder = Module::Build->new(
module_name => 'Params::Validate',
license => 'perl',
requires => {
'Attribute::Handlers' => '0.79',
'Test::More' => '0',
'Scalar::Util' => '1.10',
},
build_requires => {
'ExtUtils::CBuilder' => '0',
'Pod::Man' => '1.14',
'Test::More' => '0.88',
},
c_source => 'c',
add_to_cleanup => \@pp,
create_readme => 1,
sign => 1,
meta_merge => {
resources => {
bugtracker =>
'http://rt.cpan.org/NoAuth/Bugs.html?Dist=Params-Validate',
repository =>
'http://hg.urth.org/hg/Params-Validate',
},
},
);
if ($force_pp) {
$builder->build_elements(
[ grep { $_ ne 'xs' } @{ $builder->build_elements() } ] );
}
$builder->create_build_script();
sub _make_pp_tests {
return unless -d '.hg' || $ENV{AUTHOR_TESTING};
require File::Slurp;
File::Slurp->import(qw( read_file write_file ));
opendir my $dh, 't'
or die "Cannot read t: $!";
my @pp;
foreach my $file ( grep {/^\d.+\.t$/} readdir $dh ) {
next if $file !~ /^\d/;
my $test = read_file("t/$file");
my $bang = $test =~ /perl (-\w+)/ ? "#!perl $1\n\n" : q{};
$test
= $bang . "BEGIN { \$ENV{PV_TEST_PERL} = 1 }\n\n$test";
my $new_file = "t/pp_$file";
write_file( $new_file, $test );
push @pp, $new_file;
}
return @pp;
}