From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!perl
use strict;
use SPVM();
SPVM::Builder::Util::getopt
'h|help' => \my $help,
'v|version' => \my $show_version,
'o|output=s' => \my $output_file,
'B|build-dir=s' => \my $build_dir,
'I|module-dir=s' => \my @module_dirs,
'q|quiet' => \my $quiet,
'O|optimize=s' => \my $optimize,
'ccflags=s' => \my $extra_compiler_flags,
'lddlflags=s' => \my $extra_linker_flags,
'-f|force' => \my $force,
;
die SPVM::Builder::Util::extract_usage if $help || !(my $module_name = shift);
push @module_dirs, @INC;
my $build_exe = SPVM::Builder::Exe->new(
module_dirs => \@module_dirs,
output_file => $output_file,
module_name => $module_name,
quiet => $quiet,
optimize => $optimize,
extra_compiler_flags => $extra_compiler_flags,
extra_linker_flags => $extra_linker_flags,
force => $force,
);
$build_exe->build_exe_file;
=encoding utf8
=head1 NAME
spvmcc - SPVM compiler to create exe file
=head1 SYNOPSIS
Usage: spvmcc [OPTIONS] [MODULE_NAME]
# lib/SPVM/Myapp.spvm
spvmcc -I lib -o myapp Myapp
Options:
-h, --help Show this message
-v, --version Version
-o, --output Excutable file name
-I, --module-dir <directory> Add SPVM module searching directory
-B, --build-dir <directory> Building diretory
-q, --quiet Quiet output
-O, --optimize <level> Optimaization level
--ccflags <options> Additional compiler flags
--lddlflags <options> Additional linker flags
-f, --force Force compile and link
=head1 DESCRIPTION
spvmcc is SPVM compiler to create executable file.