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.

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 native_class, native_source, precompile_class, spvm, spvm_core.

dependent_files

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

Gets and sets the dependent_files field, an array reference of the dependent files of the source file.

If this field is defined, these files are added to the dependency list of the ninja build rule.

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"

source_file

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

Gets the source file path from config-cc_input_dir> and /"source_rel_file".

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License