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:
-
undef
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