Mailing List Archive

r3822 - trunk/perl/buildlib/Lucy
Author: creamyg
Date: 2008-09-05 23:42:05 -0700 (Fri, 05 Sep 2008)
New Revision: 3822

Modified:
trunk/perl/buildlib/Lucy/Build.pm
Log:
Minor refactoring to favor 'require' over 'eval use'.


Modified: trunk/perl/buildlib/Lucy/Build.pm
===================================================================
--- trunk/perl/buildlib/Lucy/Build.pm 2008-09-06 06:12:52 UTC (rev 3821)
+++ trunk/perl/buildlib/Lucy/Build.pm 2008-09-06 06:42:05 UTC (rev 3822)
@@ -8,6 +8,12 @@
BEGIN { our @ISA = "ExtUtils::CBuilder"; }
use Config;

+sub new {
+ my $class = shift;
+ require ExtUtils::CBuilder;
+ return $class->SUPER::new(@_);
+}
+
# This method isn't implemented by CBuilder for Windows, so we issue a basic
# link command that works on at least one system and hope for the best.
sub link_executable {
@@ -25,19 +31,6 @@
package Lucy::Build;
use base qw( Module::Build );

-# Don't crash Build.PL if dependencies aren't installed yet
-BEGIN {
- eval q|use ExtUtils::CBuilder;
- use ExtUtils::ParseXS;
- use Parse::RecDescent;|;
- my $bad_dep = $@;
- eval q|
- use Boilerplater::Session;
- use Boilerplater::Binding::Perl;
- |;
- die $@ if $@ && !$bad_dep;
-}
-
use File::Spec::Functions
qw( catdir catfile curdir splitpath updir no_upwards );
use File::Path qw( mkpath rmtree );
@@ -265,6 +258,9 @@
my $xs_code = "";
my %auto_xs;

+ require Boilerplater::Session;
+ require Boilerplater::Binding::Perl;
+
# Create destination dir, copy xs helper files.
if ( !-d $H_SOURCE_DIR ) {
mkdir $H_SOURCE_DIR or die "Can't mkdir '$H_SOURCE_DIR': $!";
@@ -406,9 +402,11 @@
}

sub ACTION_compile_custom_xs {
- my $self = shift;
+ my $self = shift;
+ require ExtUtils::ParseXS;
+
my $cbuilder = Lucy::Build::CBuilder->new;
- my $archdir = catdir( $self->blib, 'arch', 'auto', 'KinoSearch' );
+ my $archdir = catdir( $self->blib, 'arch', 'auto', 'KinoSearch' );
mkpath( $archdir, 0, 0777 ) unless -d $archdir;
my @include_dirs = (
curdir(), $C_SOURCE_DIR, $H_SOURCE_DIR, $XS_SOURCE_DIR,


_______________________________________________
kinosearch-commits mailing list
kinosearch-commits@rectangular.com
http://www.rectangular.com/mailman/listinfo/kinosearch-commits