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 )