From 574b3e491b6ee87753bb1228376c62481ae5bfc3 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 10 Jul 2011 01:35:05 -0500 Subject: for now, don't use xs implementation on pre-5.014 perls they don't have the cv_set_call_checker stuff, and i'm not quite sure how Devel::CallChecker works --- dist.ini | 4 ++++ inc/MakeMaker.pm | 27 +++++++++++++++++++++++++++ lib/smartmatch/engine/core.pm | 2 +- t/core.t | 5 +++++ t/error.t | 5 +++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 inc/MakeMaker.pm diff --git a/dist.ini b/dist.ini index af823f1..72ad60b 100644 --- a/dist.ini +++ b/dist.ini @@ -7,7 +7,11 @@ copyright_holder = Jesse Luehrs [@Filter] -bundle = @DOY -remove = NoTabsTests +-remove = MakeMaker dist = smartmatch-engine-core +; authordep Dist::Zilla::Plugin::MakeMaker::Awesome +[=inc::MakeMaker] + [Prereqs] smartmatch = 0 diff --git a/inc/MakeMaker.pm b/inc/MakeMaker.pm new file mode 100644 index 0000000..b41113a --- /dev/null +++ b/inc/MakeMaker.pm @@ -0,0 +1,27 @@ +package inc::MakeMaker; +use Moose; + +extends 'Dist::Zilla::Plugin::MakeMaker::Awesome'; + +override _build_MakeFile_PL_template => sub { + my $self = shift; + + my $tmpl = super; + + my $depends = <<'END'; +if ($] < 5.014) { + %WriteMakefileArgs = ( + %WriteMakefileArgs, + XS => {}, + C => [], + ); +} +END + + $tmpl =~ s/(WriteMakefile\()/$depends\n$1/; + + return $tmpl; +}; + +__PACKAGE__->meta->make_immutable; +1; diff --git a/lib/smartmatch/engine/core.pm b/lib/smartmatch/engine/core.pm index 7bf5c02..6769350 100644 --- a/lib/smartmatch/engine/core.pm +++ b/lib/smartmatch/engine/core.pm @@ -8,7 +8,7 @@ use parent 'DynaLoader'; sub dl_load_flags { 0x01 } -if (!$smartmatch::engine::core::USE_PP) { +if (!$smartmatch::engine::core::USE_PP && $] >= 5.014) { __PACKAGE__->bootstrap( # we need to be careful not to touch $VERSION at compile time, # otherwise DynaLoader will assume it's set and check against it, which diff --git a/t/core.t b/t/core.t index 69c0942..0d7f7ec 100644 --- a/t/core.t +++ b/t/core.t @@ -3,6 +3,11 @@ use strict; use warnings; use Test::More; +BEGIN { + plan skip_all => "no c implementation for pre-5.14 for now" + if $] < 5.014; +} + use smartmatch 'core'; no warnings 'uninitialized'; diff --git a/t/error.t b/t/error.t index edba950..4f86a87 100644 --- a/t/error.t +++ b/t/error.t @@ -3,6 +3,11 @@ use strict; use warnings; use Test::More; +BEGIN { + plan skip_all => "no c implementation for pre-5.14 for now" + if $] < 5.014; +} + my $foo = bless {}; my $bar = bless {}; -- cgit v1.2.3-54-g00ecf