Alien-xmake
view release on metacpan or search on metacpan
builder/xmake.pm view on Meta::CPAN
#~ use File::ShareDir::Install;
#~ warn File::ShareDir::Install::install_share( module => 'Alien::xmake');
#~ warn File::Spec->rel2abs(
#~ File::Basename::dirname(__FILE__), 'share'
#~ );
sub download {
my ( $s, $url, $path ) = @_;
my $local = File::Spec->rel2abs( File::Spec->catfile( $s->cwd, $path ) );
my $response = $s->http->mirror( $url, $local );
if ( $response->{success} ) {
$s->log_debug( 'Install executable mirrored at ' . $local );
$s->make_executable($local); # get it ready to run
return $local;
}
$s->log_debug( 'Status: [' . $response->{status} . '] ' . $response->{content} );
$s->log_warn( 'Failed to download ' . $response->{url} );
return ();
}
#~ sub download_shget {
#~ my ($s) = @_;
#~ my $local = File::Spec->rel2abs( File::Spec->catfile( $s->cwd, 'xmake_installer.sh' ) );
#~ my $response = $s->http->mirror( $installer_sh, $local );
#~ if ( $response->{success} ) {
#~ $s->log_debug( 'Install script mirrored at ' . $local );
#~ $s->make_executable($local); # get it ready to run
#~ return $local;
#~ }
#~ $s->log_debug( 'Status: [' . $response->{status} . '] ' . $response->{content} );
#~ $s->log_warn( 'Failed to download installer script from ' . $response->{url} );
#~ exit 1;
#~ }
sub gather_info {
my ( $s, $xmake ) = @_;
$s->config_data( xmake_exe => $xmake );
$s->config_data( xmake_dir => File::Basename::dirname($xmake) );
my $run = `$xmake --version`;
my ($ver) = $run =~ m[xmake (v.+?), A cross-platform build utility based on Lua];
$s->config_data( xmake_ver => $ver );
( run in 1.423 second using v1.01-cache-2.11-cpan-49f99fa48dc )