Alien-Build-Plugin-Build-Premake5
view release on metacpan or search on metacpan
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
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 )