Use multiple XS files with Module::Build
When I'm porting Text-Xslate to Module::Build, I got an issue.
Text::Xslate uses multiple XS files for generating 1 .so file. M::B doesn't support this case.
Here is my solution:
Set xs_files
for main .xs file.
xs_files => {
'src/Text-Xslate.xs' => 'lib/Text/Xslate.xs',
},
And set c_source
for other miscellaneous .xs files.
c_source => ['src'],
Finally, call ExtUtils::ParseXS in ACTION_code method.
sub ACTION_code {
my $self = shift;
require ExtUtils::ParseXS;
ExtUtils::ParseXS->new->process_file(
filename => 'src/xslate_methods.xs',
output => 'src/xslate_methods.c'
);
$self->SUPER::ACTION_code(@_);
}
That's all.
[Update 20131125] Oops. c_source should be directory!
Published: 2013-12-13(Fri) 12:42