Alien-Build-MB
view release on metacpan or search on metacpan
lib/Alien/Build/MB.pm view on Meta::CPAN
sub alien_build
{
my($self, $noload) = @_;
my $build = Alien::Build->resume('alienfile', '_alien');
$build->load_requires('configure');
$build->load_requires($build->install_type) unless $noload;
$build;
}
sub _alien_already_done ($)
{
my($name) = @_;
my $path = Path::Tiny->new("_alien/mb/$name");
return -f $path;
}
sub _alien_touch ($)
{
my($name) = @_;
my $path = Path::Tiny->new("_alien/mb/$name");
$path->parent->mkpath;
$path->touch;
}
sub ACTION_alien_download
{
my($self) = @_;
return $self if _alien_already_done 'download';
my $build = $self->alien_build;
$build->download;
$build->checkpoint;
_alien_touch 'download';
$self;
}
sub ACTION_alien_build
{
my($self) = @_;
return $self if _alien_already_done 'build';
$self->depends_on('alien_download');
my $build = $self->alien_build;
$build->build;
if($build->meta_prop->{arch})
{
my $archdir = Path::Tiny->new("./blib/arch/auto/@{[ join '/', split /-/, $self->dist_name ]}");
$archdir->mkpath;
my $archfile = $archdir->child($archdir->basename . ".txt");
$archfile->spew('Alien based distribution with architecture specific file in share');
}
{
my @parts = split /-/, $self->dist_name;
my $package = join '::', @parts;
my $install_files = Path::Tiny->new("./blib/lib")->child( @parts, 'Install', 'Files.pm' );
$install_files->parent->mkpath;
$install_files->spew_utf8(
"package ${package}::Install::Files;\n",
"use strict;\n",
"use warnings;\n",
"require ${package};\n",
"sub Inline { shift; ${package}->Inline(\@_) }\n",
"1;\n",
"\n",
"=begin Pod::Coverage\n",
"\n",
" Inline\n",
"\n",
"=cut\n",
);
};
$build->checkpoint;
_alien_touch 'build';
$self;
}
sub ACTION_alien_test
{
my($self) = @_;
$self->depends_on('alien_build');
my $build = $self->alien_build;
if($build->can('test'))
{
$build->test;
$build->checkpoint;
}
$self;
}
sub ACTION_test
{
my($self) = @_;
$self->depends_on('alien_test');
$self->SUPER::ACTION_test;
}
sub ACTION_code
{
my($self) = @_;
$self->depends_on('alien_build');
$self->SUPER::ACTION_code;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
( run in 0.724 second using v1.01-cache-2.11-cpan-56fb94df46f )