Alien-Ninja

 view release on metacpan or  search on metacpan

alienfile  view on Meta::CPAN

      my $bin_dir = Path::Tiny->new('bin');
      $bin_dir->mkpath;

      my $ninja_bin_name = "ninja$Config{_exe}";
      my $ninja_bin = Path::Tiny->new($ninja_bin_name);
      $ninja_bin->move( $bin_dir->child($ninja_bin_name) );
    };
    plugin 'Build::Copy';
    meta->after_hook( build => sub {
      my($build) = @_;
      $build->runtime_prop->{'style'} = 'binary';
    });
  } else {
    # build from source
    plugin 'Download::GitHub' => (
      %github_info,
    );
    plugin 'Build::CMake';
    build [
      ['%{cmake}',
        ( $^O eq 'MSWin32'

alienfile  view on Meta::CPAN

          -DHAVE_FORK=0 -DHAVE_PIPE=0
        ) : () ),
        @{ meta->prop->{plugin_build_cmake}->{args} },
        '%{.install.extract}',
      ],
      '%{make}',
      '%{make} install',
    ];
    meta->after_hook( build => sub {
      my($build) = @_;
      $build->runtime_prop->{'style'} = 'source';
    });
  }

  gather sub {
    my($build) = @_;
    $build->runtime_prop->{command} = 'ninja';
  };

};

sys {
  meta->after_hook( probe => sub {
    my($build) = @_;
    $build->runtime_prop->{'style'} = 'system';
  });
};

t/alien_ninja.t  view on Meta::CPAN

use Test2::V0;
use Test::Alien;
use Test::Alien::Diag;
use Alien::Ninja;

alien_diag 'Alien::Ninja';
diag "Alien::Ninja {style} : ", Alien::Ninja->runtime_prop->{'style'};
alien_ok 'Alien::Ninja';

run_ok([ Alien::Ninja->exe, qw(--version) ])
  ->success
  ->out_like(qr/[0-9\.]+/);

done_testing;



( run in 0.479 second using v1.01-cache-2.11-cpan-49f99fa48dc )