Alien-SVN

 view release on metacpan or  search on metacpan

inc/My/SVN/Builder.pm  view on Meta::CPAN

package My::SVN::Builder;

use File::Basename;

use base 'Module::Build';

use Cwd;
use Config;

sub _run {
    my($self, $prog, @args) = @_;
    
    $prog = $self->notes('your_make') if $prog eq 'make';
    
    print "Running $prog @args\n";
    return system($prog, @args) == 0 ? 1 : 0;
}

my $Orig_CWD = cwd;
sub _chdir_to_svn {
    chdir 'src/subversion' or die $!;
}

sub _chdir_to_native {
    _chdir_to_svn;
    chdir "subversion/bindings/swig/perl/native" or die $!;
}

sub _chdir_back {
    chdir $Orig_CWD;
}


sub _svn_provides {
    my $class = shift;
    
    my @pms = <src/subversion/subversion/bindings/swig/perl/native/*.pm>;

    my %provides;
    for my $pm (@pms) {
        my $module = 'SVN::' . basename($pm, ".pm");

        $provides{$module} = { file => $pm };
    }
    
    $provides{"SVN::Core"}{version}  = '1.8.11';
    $provides{"Alien::SVN"} = {
        version => '1.8.11.0',
        file    => 'lib/Alien/SVN.pm'
    };

    _chdir_back;
    
    return \%provides;
}


my %build_to_makemaker = (
   # Some names they have in common
   map {lc($_) => $_} qw(DESTDIR PREFIX INSTALL_BASE UNINST INSTALLDIRS),
);

my %translate_values = (
    installdirs     => {
        core    => "perl",
        site    => 'site',
        vendor  => 'vendor'
    }
);

sub _makemaker_args {
    my $self = shift;

    my $props = $self->{properties};
    my %mm_args;

    for my $key (keys %build_to_makemaker) {
        next unless defined $props->{$key};
        my $value = $props->{$key};
        $value = $translate_values{$key}{$value} if $translate_values{$key};

        $mm_args{$build_to_makemaker{$key}} = $value;
    }
    
    return map { "$_=$mm_args{$_}" } keys %mm_args;
}

sub _default_configure_args {
    my $self = shift;

    my $props = $self->{properties};
    my $prefix = $props->{install_base} || 
                 $props->{prefix}       ||
                 $Config{siteprefix};

    my %args = (
        '--prefix' => $prefix,



( run in 0.832 second using v1.01-cache-2.11-cpan-2398b32b56e )