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__