The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Name

SPVM::Builder::CompileInfo - Compiler Information

Description

The SPVM::Builder::CompileInfo class has methods to manipulate compiler information.

Fields

config

  my $config = $compile_info->config;
  $compile_info->config($config);

Gets and sets the config field, a SPVM::Builder::Config object.

source_file

  my $source_file = $compile_info->source_file;
  $compile_info->source_file($source_file);

Gets and sets the source_file field, a source file.

output_file

  my $output_file = $compile_info->output_file;
  $compile_info->output_file($output_file);

Gets and sets the output_file field, an output file.

category

  my $category = $config->category;
  $config->category($category);

Gets and sets the category field.

These are precompile_class, native_class, native_source, spvm_core, bootstrap.

Class Methods

new

  my $compile_info = SPVM::Builder::CompileInfo->new(%fields);

Creates a new SPVM::Builder::CompileInfo object given "Fields".

Field Default Values:

Exceptions:

The "config" field must be defined.

Instance Methods

create_command

  my $compile_command = $compile_info->create_command;

Creates an array reference of the compilation command, and returns it.

Return Value Examples:

  [qw(cc -o foo.o -c -O2 -Ipath/include foo.c)]

create_ccflags

  my $config_args = $compile_info->create_ccflags;

Creates n array reference of the compilation options, and returns it.

The source file "source_file" and the output file "output_file" are not contained.

Return Value Examples:

  [qw(-O2 -Ipath/include)]

to_command

  my $compile_command_string = $compile_info->to_command;

Joins all elements of the return value of the the create_command method with a space, and returns it.

Return Value Examples:

  "cc -c -o foo.o -O2 -Ipath/include foo.c"

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License