logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

FFI::Probe - System detection and probing for FFI extensions.

Author

       Author: Graham Ollis <plicease@cpan.org>

       Contributors:

       Bakkiaraj Murugesan (bakkiaraj)

       Dylan Cali (calid)

       pipcet

       Zaki Mughal (zmughal)

       Fitz Elliott (felliott)

       Vickenty Fesunov (vyf)

       Gregor Herrmann (gregoa)

       Shlomi Fish (shlomif)

       Damyan Ivanov

       Ilya Pavlov (Ilya33)

       Petr Písař (ppisar)

       Mohammad S Anwar (MANWAR)

       Håkon Hægland (hakonhagland, HAKONH)

       Meredith (merrilymeredith, MHOWARD)

       Diab Jerius (DJERIUS)

       Eric Brine (IKEGAMI)

       szTheory

       José Joaquín Atria (JJATRIA)

       Pete Houston (openstrike, HOUSTON)

       Lukas Mai (MAUKE)

Constructor

new
        my $probe = FFI::Probe->new(%args);

       Creates a new instance.

       log Path to a log or file handle to write to.

       data_filename
           Path to a file which will be used to store/cache results.

Description

       This class provides an interface for probing for system capabilities.  It is used internally as part of
       the FFI::Platypus build process, but it may also be useful for extensions that use Platypus as well.

Methods

check_header
        my $bool = $probe->check_header($header);

       Checks that the given C header file is available.  Stores the result, and returns a true/false value.

   check_cppcheck_eval
        my $bool = $probe>check_eval(%args);

       headers
           Any additional headers.

       decl
           Any C declarations that need to be made before the "dlmain" function.

       stmt
           Any C statements that should be made before the evaluation.

       eval
           Any evaluations that should be returned.

   checkcheck_type_int
        my $type = $probe->check_type_int($type);

   check_type_enum
        my $type = $probe->check_type_enum;

   check_type_enum
        my $type = $probe->check_type_enum;

   check_type_float
        my $type = $probe->check_type_float($type);

   check_type_pointer
        my $type = $probe->check_type_pointer;

   set
        $probe->set(@key, $value);

       Used internally to store a value.

   save
        $probe->save;

       Saves the values already detected.

   data
        my $data = $probe->data;

       Returns a hashref of the data already detected.

   log
        $probe->log($string);

       Sends the given string to the log.

   log_code
        $prbe->log_code($string);

       Sends the given multi-line code block to the log.

   template
        my $template = $probe->template;

       Returns the C code template used for "check_eval" and other "check_" methods.

Name

       FFI::Probe - System detection and probing for FFI extensions.

Synopsis

        use FFI::Probe;

        my $probe = FFI::Probe->new;
        $probe->check_header('foo.h');
        ...

Version

       version 2.10

See Also