GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
FFI::Build::File::Base(3) User Contributed Perl Documentation FFI::Build::File::Base(3)

FFI::Build::File::Base - Base class for File::Build files

version 1.56

Create your own file class

 package FFI::Build::File::Foo;
 use parent qw( FFI::Build::File::Base );
 use constant default_suffix => '.foo';
 use constant default_encoding => ':utf8';

Use it:

 # use an existing file in the filesystem
 my $file = FFI::Build::File::Foo->new('src/myfile.foo');
 
 # generate a temp file with provided content
 # file will be deletd when $file falls out of scope.
 my $file = FFI::Build::File::Foo->new(\'content for a temp foo');

This class is the base class for other FFI::Build::File classes.

 my $file = FFI::Build::File::Base->new(\$content, %options);
 my $file = FFI::Build::File::Base->new($filename, %options);

Create a new instance of the file class. You may provide either the content of the file as a scalar reference, or the path to an existing filename. Options:

base
The base name for any temporary file "ffi_build_" by default.
build
The FFI::Build instance to use.
dir
The directory to store any temporary file.
platform
The FFI::Build::Platform instance to use.

 my $suffix = $file->default_suffix;

MUST be overridden in the subclass. This is the standard extension for the file type. ".c" for a C file, ".o" or ".obj" for an object file depending on platform. etc.

 my $encoding = $file->default_encoding;

MUST be overridden in the subclass. This is the passed to "binmode" when the file is opened for reading or writing.

 my @suffix_list = $file->accept_suffix;

Returns a list of regexes that recognize the file type.

 my $path = $file->path;

The full or relative path to the file.

 my $basename = $file->basename;

The base filename part of the path.

 my $dir = $file->dirname;

The directory part of the path.

 my $bool = $file->is_temp;

Returns true if the file is temporary, that is, it will be deleted when the file object falls out of scope. You can call "keep", to keep the file.

 my $platform = $file->platform;

The FFI::Build::Platform instance used for this file object.

 my $build = $file->build;

The FFI::Build instance used for this file object, if any.

 my $path = $file->native;

Returns the operating system native version of the filename path. On Windows, this means that forward slash "\" is used instead of backslash "/".

 my $content = $file->slurp;

Returns the content of the file.

 $file->keep;

Turns off the temporary flag on the file object, meaning it will not automatically be deleted when the file object is deallocated or falls out of scope.

 $file->build_item;

Builds the file into its natural output type, usually an object file. It returns a new file instance, or if the file is an object file then it returns empty list.

 $file->build_all;

If implemented the file in question can directly create a shared or dynamic library without needing a link step. This is useful for languages that have their own build systems.

 my $bool = $file->needs_rebuild

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)

This software is copyright (c) 2015,2016,2017,2018,2019,2020 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.

2021-10-28 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.