Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

use strict;
use Config;
use Carp 'confess';
use File::Basename 'dirname';
use overload bool => sub {1}, '""' => sub { shift->to_string }, fallback => 1;
# Fields
sub file {
my $self = shift;
if (@_) {
$self->{file} = $_[0];
return $self;
}
else {
return $self->{file};
}
}
sub compile_info {
my $self = shift;
if (@_) {
$self->{compile_info} = $_[0];
return $self;
}
else {
return $self->{compile_info};
}
}
# Class methods
sub new {
my $class = shift;
my $self = {@_};
bless $self, $class;
return $self;
}
# Instance methods
sub to_string {
my ($self) = @_;
return $self->file;
}
1;
=head1 Name
SPVM::Builder::ObjectFileInfo - Object File Information
=head1 Description
The SPVM::Builder::ObjectFileInfo class has methods to manipulate object file information.
=head1 Fields
=head2 file
my $file = $object_file_info->file;
$object_file_info->file($file);
Gets and sets the C<file> field, an object file name.
=head2 compile_info
my $compile_info = $object_file_info->compile_info;
$object_file_info->compile_info($compile_info);
Gets and sets the C<compile_info> field, an L<SPVM::Builder::CompileInfo> object.
=head1 Class Methods
=head2 new
my $object_file_info = SPVM::Builder::ObjectFileInfo->new(%fields);
Creates a new L<SPVM::Builder::ObjectFileInfo> object, and returns it.
Field Default Values:
=over 2
=item * L</"file">
undef
=item * L</"compile_info">
undef
=back
=head1 Instance Methods
=head2 to_string
my $object_file_info = $object_file_info->to_string;
Returns L</"file"> field.
=head1 Operators
Overloads the following operators.
=head2 bool
my $bool = !!$object_file_info;
Always true.
=head2 stringify
my $object_file_info_name = "$object_file_info";
Alias for L</"to_string"> method.
=head1 Copyright & License
Copyright (c) 2023 Yuki Kimoto
MIT License