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

use strict;
sub create_make_rule_native { SPVM::Builder::Util::create_make_rule_native(@_) }
sub create_make_rule_precompile { SPVM::Builder::Util::create_make_rule_precompile(@_) }
sub create_default_config { SPVM::Builder::Util::create_default_config(@_) }
1;
=head1 Name
SPVM::Builder::Util::API - Builder Utility APIs
=head1 Description
The SPVM::Builder::Util::API module has the public utility functions to build SPVM native classes and SPVM precompilation classes.
=head1 Usage
my $native_make_rule = SPVM::Builder::Util::API::create_make_rule_native('MyClass');
my $precompile_make_rule = SPVM::Builder::Util::API::create_make_rule_precompile('MyClass');
=head1 Functions
=head2 create_make_rule_native
my $make_rule = SPVM::Builder::Util::API::create_make_rule_native($class_name);
Creates a string of C<make> commands for generating a dynamic library for a L<native class|SPVM::Document::NativeClass> given the class name $class_name, and returns it.
A native class must have at least one method with L<native attribute|SPVM::Document::Language::Class/"Method Attributes">.
Examples:
# Makefile.PL
sub MY::postamble {
my $make_rule = '';
# Native compile make rule
$make_rule .= SPVM::Builder::Util::API::create_make_rule_native('Foo');
return $make_rule;
}
=head2 create_make_rule_precompile
my $make_rule = SPVM::Builder::Util::API::create_make_rule_precompile($class_name);
Creates a string of C<make> commands for generating a dynamic library for a precompilation class given the class name $class_name, and returns it.
A precompilation class must have at least one method with L<precompile attribute|SPVM::Document::Language::Class/"Method Attributes">.
Examples:
# Makefile.PL
sub MY::postamble {
my $make_rule = '';
# Precompile make rule
$make_rule .= SPVM::Builder::Util::API::create_make_rule_precompile('Foo');
return $make_rule;
}
=head2 create_default_config
my $config = SPVM::Builder::Util::API::create_default_config();
Creates a default config, and returns it. It is an L<SPVM::Builder::Config> object.
Currently the default config is created by the following operation.
my $config = SPVM::Builder::Config->new_gnu99(file_optional => 1);
=head1 Copyright & License
Copyright (c) 2023 Yuki Kimoto
MIT License