Alien-SVN

 view release on metacpan or  search on metacpan

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

        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,
        '--libdir' => File::Spec->catdir(
            $self->install_destination('arch'), 'Alien', 'SVN'
        ),
        PERL   => $^X,
    );

    return join ' ', map { "$_=$args{$_}" } sort keys %args;
}

sub _run_svn_configure {
    my $self = shift;
    
    _chdir_to_svn;
    
    my $ok = $self->_run("sh configure @{[$self->notes('configure_args')]}");

    _chdir_back;

    return 1 if $ok;
    
    warn "configuring SVN failed";
    return 0;
}

sub ACTION_code {
    my $self = shift;
    
    $self->SUPER::ACTION_code;

    _chdir_to_svn;

    $self->_run('make')
        or do { warn "building subversion failed"; return 0 };
    $self->_run("make swig-pl-lib")
        or do { warn "building swig-pl-lib failed"; return 0 };

    _chdir_back;
    _chdir_to_native;

    $self->_run($^X, "Makefile.PL", $self->_makemaker_args)
        or do { warn "running Makefile.PL failed"; return 0 };
    $self->_run("make") or do { warn "building SV::Core failed"; return 0 };
    
    _chdir_back;
    _chdir_to_svn;
    
    $self->_run("make swig-pl")
        or do { warn "building swig-pl failed"; return 0 };
    
    _chdir_back;
    
    return 1;
}


sub ACTION_test {
    my $self = shift;
    
    $self->depends_on('code');
    
    _chdir_to_native;
    
    my $test_status = $self->_run("make test");
    
    _chdir_back;
    
    return $test_status;
}


sub ACTION_install {
    my $self = shift;
    
    _chdir_to_svn;

    $self->_run("make install-lib")
        or do { warn "installing libs failed"; return 0 };

    $self->_run("make install-swig-pl-lib")
        or do { warn "installing swig-pl-lib failed"; return 0 };

    _chdir_back;
    _chdir_to_native;
    
    $self->_run("make install")
        or do { warn "installing SVN::Core failed"; return 0 };
    
    _chdir_back;
    
    $self->SUPER::ACTION_install;
}

1;



( run in 0.589 second using v1.01-cache-2.11-cpan-39bf76dae61 )