/usr/local/CPAN/Class-InsideOut/Build.PL
use strict;
use Module::Build;
my $class = Module::Build->subclass(
class => "Module::Build::WikiDoc",
code => <<'SUBCLASS', );
sub ACTION_wikidoc {
my $self = shift;
eval "use Pod::WikiDoc";
if ( $@ eq '' ) {
my $parser = Pod::WikiDoc->new( {
comment_blocks => 1,
keywords => { VERSION => $self->dist_version },
});
for my $src ( keys %{ $self->find_pm_files() } ) {
(my $tgt = $src) =~ s{\.pm$}{.pod};
$parser->filter( {
input => $src,
output => $tgt,
});
print "Creating $tgt\n";
$tgt =~ s{\\}{/}g;
$self->_add_to_manifest( 'MANIFEST', $tgt );
}
}
else {
warn "Pod::WikiDoc not available. Skipping wikidoc.\n";
}
}
sub ACTION_test {
my $self = shift;
my $missing_pod;
for my $src ( keys %{ $self->find_pm_files() } ) {
(my $tgt = $src) =~ s{\.pm$}{.pod};
$missing_pod = 1 if ! -e $tgt;
}
if ( $missing_pod ) {
$self->depends_on('wikidoc');
$self->depends_on('build');
}
$self->SUPER::ACTION_test;
}
sub ACTION_testpod {
my $self = shift;
$self->depends_on('wikidoc');
$self->SUPER::ACTION_testpod;
}
sub ACTION_distmeta {
my $self = shift;
$self->depends_on('wikidoc');
$self->SUPER::ACTION_distmeta;
}
SUBCLASS
my $builder = $class->new(
module_name => 'Class::InsideOut',
dist_author => 'David A. Golden <dagolden@cpan.org>',
license => 'apache',
create_readme => 1,
create_makefile_pl => 'traditional',
requires => {
'perl' => 5.005, # says Perl::MinimumVersion
'base' => 0,
'Class::ISA' => 0, # why reimplement what works
'Config' => 0,
'Exporter' => 0,
'Test::More' => 0.45, # thread-safe
'Scalar::Util' => 1.09, # refaddr
},
add_to_cleanup => [ 'Class-InsideOut-*' ],
meta_add => {
no_index => {
file => [ qw{
lib/Class/InsideOut/Manual/About.pm
lib/Class/InsideOut/Manual/Advanced.pm
} ],
directory => [ 'examples' ],
}
},
);
$builder->create_build_script;