dougm 01/03/04 15:26:53
Added: lib/ModPerl ParseSource.pm
Log:
subclass of Apache::ParseSource for building ModPerl::FunctionTable
Revision Changes Path
1.1 modperl-2.0/lib/ModPerl/ParseSource.pm
Index: ParseSource.pm
===================================================================
package ModPerl::ParseSource;
use strict;
use Config ();
use Apache::ParseSource ();
our @ISA = qw(Apache::ParseSource);
our $VERSION = '0.01';
sub includes {
my $self = shift;
my $dirs = $self->SUPER::includes;
return [
'.', qw(xs src/modules/perl),
@$dirs,
"$Config::Config{archlibexp}/CORE",
];
}
sub include_dirs { '.' }
sub find_includes {
my $self = shift;
my $includes = $self->SUPER::find_includes;
#filter/sort
my @wanted = grep { /mod_perl\.h/ } @$includes;
push @wanted, grep { m:xs/modperl_xs_: } @$includes;
push @wanted, grep { m:xs/A: } @$includes;
\@wanted;
}
my $prefixes = join '|', qw(modperl_|mpxs_|mp_xs);
my $prefix_re = qr{^($prefixes)};
sub wanted_functions { $prefix_re }
sub write_functions_pm {
my $self = shift;
my $file = shift || 'FunctionTable.pm';
my $name = shift || 'ModPerl::FunctionTable';
$self->SUPER::write_functions_pm($file, $name);
}
for my $method (qw(get_constants get_structs write_structs_pm get_structs)) {
no strict 'refs';
*$method = sub { die __PACKAGE__ . "->$method not implemented" };
}
1;
__END__