FFI::Probe::Runner::Builder#
Probe runner builder for FFI
VERSION#
version 2.12
SYNOPSIS#
use FFI::Probe::Runner::Builder;
my $builder = FFI::Probe::Runner::Builder->new
dir => "/foo/bar",
);
my $exe = $builder->build;
DESCRIPTION#
This is a builder class for the FFI probe runner. It is mostly only of interest if you are hacking on FFI::Platypus itself.
The interface may and will change over time without notice. Use in external dependencies at your own peril.
CONSTRUCTORS#
new#
my $builder = FFI::Probe::Runner::Builder->new(%args);
Create a new instance.
dir
The root directory for where to place the probe runner files. Will be created if it doesn’t already exist. The default makes sense for when FFI::Platypus is being built.
METHODS#
dir#
my $dir = $builder->dir(@subdirs);
Returns a subdirectory from the builder root. Directory will be created if it doesn’t already exist.
cc#
my @cc = @{ $builder->cc };
The C compiler to use. Returned as an array reference so that it may be modified.
ccflags#
my @ccflags = @{ $builder->ccflags };
The C compiler flags to use. Returned as an array reference so that it may be modified.
optimize#
The C optimize flags to use. Returned as an array reference so that it may be modified.
ld#
my @ld = @{ $builder->ld };
The linker to use. Returned as an array reference so that it may be modified.
ldflags#
my @ldflags = @{ $builder->ldflags };
The linker flags to use. Returned as an array reference so that it may be modified.
libs#
my @libs = @{ $builder->libs };
The library flags to use. Returned as an array reference so that it may be modified.
file#
my $file = $builder->file(@subdirs, $filename);
Returns a file in a subdirectory from the builder root. Directory will be created if it doesn’t already exist. File will not be created.
exe#
my $exe = $builder->exe;
The name of the executable, once it is built.
source#
my $source = $builder->source;
The C source for the probe runner.
extract#
$builder->extract;
Extract the source for the probe runner.
run#
$builder->run($type, @command);
Runs the given command. Dies if the command fails.
run_list#
$builder->run($type, \@command, \@command, ...);
Runs the given commands in order until one succeeds. Dies if they all fail.
build#
my $exe = $builder->build;
Builds the probe runner. Returns the path to the executable.
COPYRIGHT AND LICENSE#
This software is copyright (c) 2015-2022 by Graham Ollis.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.