Litavis
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
# XSLoader::load is intercepted so the .pm's pure-Perl methods are available
# without needing the compiled .bundle (which may not match the .pm version).
eval {
no warnings 'redefine';
local *XSLoader::load = sub {}; # no-op the XS bootstrap
require Colouring::In::XS;
$colour_inc = Colouring::In::XS->include_dir();
$colour_inc = undef unless $colour_inc && -d $colour_inc;
};
if (!$colour_inc) {
# include_dir() arrived in 0.09; older installs still put the header
# at .../Colouring/In/XS/include next to the .pm, so derive it - the
# CPAN smokers holding 0.08 satisfied `configure_requires => 0` and
# then died here for the want of one method.
for my $dir (@INC) {
next if ref $dir;
my $pm = "$dir/Colouring/In/XS.pm";
next unless -f $pm;
(my $inc = $pm) =~ s{\.pm\z}{/include};
if (-d $inc) { $colour_inc = $inc; last }
}
}
if (!$colour_inc && -d '../Colouring-In-XS/include') {
$colour_inc = '../Colouring-In-XS/include';
}
die "Cannot find Colouring::In::XS include directory. Install Colouring::In::XS first.\n"
unless $colour_inc;
my %WriteMakefileArgs = (
NAME => 'Litavis',
AUTHOR => ['LNATION <email@lnation.org>'],
VERSION_FROM => 'lib/Litavis.pm',
ABSTRACT_FROM => 'lib/Litavis.pm',
LICENSE => 'artistic_2',
MIN_PERL_VERSION => '5.010',
macro => { TARFLAGS => "--format=ustar -c -v -f" },
CONFIGURE_REQUIRES => {
'ExtUtils::MakeMaker' => '0',
# 0.11: include_dir() (0.09) plus colouring.h's PERL_IMPLICIT_SYS
# guard for Windows perls. A floor of 0 leaves a smoker's stale
# install in place - which is exactly what failed 0.04.
'Colouring::In::XS' => '0.11',
},
TEST_REQUIRES => {
'Test::More' => '0.88',
},
PREREQ_PM => {
'Colouring::In::XS' => '0.11',
},
INC => "-I. -Iinclude -I$colour_inc",
OBJECT => '$(O_FILES)',
# Install headers so downstream XS modules can #include them
PM => {
'lib/Litavis.pm' => '$(INST_LIB)/Litavis.pm',
'include/litavis.h' => '$(INST_LIB)/Litavis/include/litavis.h',
'include/litavis_ast.h' => '$(INST_LIB)/Litavis/include/litavis_ast.h',
'include/litavis_tokeniser.h' => '$(INST_LIB)/Litavis/include/litavis_tokeniser.h',
'include/litavis_parser.h' => '$(INST_LIB)/Litavis/include/litavis_parser.h',
'include/litavis_cascade.h' => '$(INST_LIB)/Litavis/include/litavis_cascade.h',
'include/litavis_vars.h' => '$(INST_LIB)/Litavis/include/litavis_vars.h',
'include/litavis_emitter.h' => '$(INST_LIB)/Litavis/include/litavis_emitter.h',
'include/litavis_colour.h' => '$(INST_LIB)/Litavis/include/litavis_colour.h',
'include/litavis_dirent_win.h' => '$(INST_LIB)/Litavis/include/litavis_dirent_win.h',
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz' },
clean => { FILES => 'Litavis-*' },
);
# Compatibility with old versions of ExtUtils::MakeMaker
unless (eval { ExtUtils::MakeMaker->VERSION('6.64'); 1 }) {
my $test_requires = delete $WriteMakefileArgs{TEST_REQUIRES} || {};
@{$WriteMakefileArgs{PREREQ_PM}}{keys %$test_requires} = values %$test_requires;
}
unless (eval { ExtUtils::MakeMaker->VERSION('6.55_03'); 1 }) {
my $build_requires = delete $WriteMakefileArgs{BUILD_REQUIRES} || {};
@{$WriteMakefileArgs{PREREQ_PM}}{keys %$build_requires} = values %$build_requires;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION('6.52'); 1 };
delete $WriteMakefileArgs{MIN_PERL_VERSION}
unless eval { ExtUtils::MakeMaker->VERSION('6.48'); 1 };
delete $WriteMakefileArgs{LICENSE}
unless eval { ExtUtils::MakeMaker->VERSION('6.31'); 1 };
# Old MakeMaker doesn't support AUTHOR as arrayref
if (ref $WriteMakefileArgs{AUTHOR} eq 'ARRAY') {
unless (eval { ExtUtils::MakeMaker->VERSION('6.5702'); 1 }) {
$WriteMakefileArgs{AUTHOR} = join(', ', @{$WriteMakefileArgs{AUTHOR}});
}
}
WriteMakefile(%WriteMakefileArgs);
( run in 5.280 seconds using v1.01-cache-2.11-cpan-0fb53d1c279 )