Alien-Build-Plugin-Build-Premake5

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

    For a list of valid actions, check the premake5 client's documentation.

## Flags

These flags can only be set to true or false. They will be ignored if false.

- **fatal**

    Treat warnings from project scripts as errors.

- **insecure**

    Forfeit SSH certification checks.

- **verbose**

    Generate extra debug text output.

## Key / value pairs

- **os**

lib/Alien/Build/Plugin/Build/Premake5.pm  view on Meta::CPAN

our $VERSION = '0.002';

use Alien::Build::Plugin;

has os           => sub { undef };
has cc           => sub { undef };
has dc           => sub { undef };
has dotnet       => sub { undef };
has fatal        => sub { undef };
has file         => sub { undef };
has insecure     => sub { undef };
has scripts      => sub { undef };
has systemscript => sub { undef };
has verbose      => sub { undef };

has action => 'gmake';

sub init {
  my ($self, $meta) = @_;

  $meta->add_requires( 'share', 'Alien::premake5' => '0.001' );

lib/Alien/Build/Plugin/Build/Premake5.pm  view on Meta::CPAN

      require Alien::premake5;
      my @cmd = Alien::premake5->exe;

      foreach my $key (qw( cc dc dotnet file os scripts systemscript )) {
        my $val = $self->$key;
        next unless defined $val;
        next if $key eq 'os' and $val eq $self->os_string;
        push @cmd, "--$key=$val" if $val;
      }

      foreach my $key (qw( fatal insecure verbose )) {
        push @cmd, "--$key" if defined $self->$key;
      }

      return join ' ', @cmd;
    },
  );

  $meta->interpolator->add_helper(
    premake => $meta->interpolator->has_helper('premake5'),
  );

lib/Alien/Build/Plugin/Build/Premake5.pm  view on Meta::CPAN

=head2 Flags

These flags can only be set to true or false. They will be ignored if false.

=over 4

=item B<fatal>

Treat warnings from project scripts as errors.

=item B<insecure>

Forfeit SSH certification checks.

=item B<verbose>

Generate extra debug text output.

=back

=head2 Key / value pairs

t/basic.t  view on Meta::CPAN


subtest 'options' => sub {
  my $plugin = Alien::Build::Plugin::Build::Premake5->new(
    cc           => 'gcc',
    dc           => 'gdc',
    dotnet       => 'mono',
    file         => 'foo',
    scripts      => 'bar',
    systemscript => 'baz',
    fatal        => 1,
    insecure     => 1,
  );

  my $build = alienfile_ok q{ use alienfile };
  my $meta = $build->meta;
  $plugin->init($meta);

  my $premake = $meta->interpolator->interpolate('%{premake}');
  like $premake, qr{--file         = foo}x, "file";
  like $premake, qr{--scripts      = bar}x, "scripts";
  like $premake, qr{--systemscript = baz}x, "systemscript";

  like $premake, qr{--fatal\b},    "fatal";
  like $premake, qr{--insecure\b}, "insecure";
};

done_testing();



( run in 0.832 second using v1.01-cache-2.11-cpan-39bf76dae61 )