[Module-build-checkins] Module-Build/lib/Module/Build Compat.pm,1.63,1.64
Status: Beta
Brought to you by:
kwilliams
|
From: Ken W. <kwi...@us...> - 2005-09-06 22:07:31
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26845/lib/Module/Build Modified Files: Compat.pm Log Message: Don't assume all subclasses are in _build/lib Index: Compat.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Compat.pm,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- Compat.pm 17 Jun 2005 04:27:57 -0000 1.63 +++ Compat.pm 6 Sep 2005 22:07:23 -0000 1.64 @@ -40,8 +40,7 @@ } print {$fh} "# Note: this file was auto-generated by ", __PACKAGE__, " version $VERSION\n"; - my $subclass_dir = File::Spec->catdir($build->config_dir, 'lib'); - $subclass_dir =~ s/([\'\\])/\\$1/g; + my $subclass_dir = $package->subclass_dir($build); if ($type eq 'small') { printf {$fh} <<'EOF', $subclass_dir, ref($build), ref($build); @@ -129,6 +128,17 @@ } +sub subclass_dir { + my ($self, $build) = @_; + + my $build_mod = join('/', split /::/, ref($build)) . '.pm'; + return File::Spec->catdir($build->config_dir, 'lib') + unless exists $INC{$build_mod}; + + my ($build_vol, $build_dir) = File::Spec->splitpath($INC{$build_mod}); + return File::Spec->catpath($build_vol, $build_dir, ''); +} + sub makefile_to_build_args { shift; my @out; |