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 )