X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.PL;h=122282324d8103a22bf580e558de4476f6b0e450;hb=0e81c55d54fbd14fb67d6f22c184df2d0d7059c0;hp=c26b75178695250c6825075b0246ba6384c59252;hpb=a09601ab6f3b4b6efb78d3f24a050fec92dcf02f;p=gitmo%2FMouse.git diff --git a/Makefile.PL b/Makefile.PL index c26b751..1222823 100755 --- a/Makefile.PL +++ b/Makefile.PL @@ -2,6 +2,9 @@ use strict; use warnings; use inc::Module::Install; +system($^X, 'author/generate-mouse-tiny.pl', 'lib/Mouse/Tiny.pm') == 0 + or warn "Cannot generate Mouse::Tiny: $!"; + name 'Mouse'; all_from 'lib/Mouse.pm'; @@ -13,10 +16,37 @@ requires 'Scalar::Util' => 1.14; test_requires 'Test::More' => 0.88; test_requires 'Test::Exception' => 0.27; -test_requires 'Test::Output' => 0.16; +# test_requires 'Test::Output' => 0.16; # too many dependencies! + +include 'Test::Exception'; # work around 0.27_0x (its use of diehook might be wrong) recommends 'MRO::Compat' if $] < 5.010; +my $use_xs; + +for (@ARGV) { + /^--pp$/ and $use_xs = 0; + /^--xs$/ and $use_xs = 1; +} + +if(!defined $use_xs){ + configure_requires 'ExtUtils::CBuilder'; + require ExtUtils::CBuilder; + $use_xs = ExtUtils::CBuilder->new(quiet => 1)->have_compiler(); +} + +if($use_xs){ + require Module::Install::XSUtil; + use_ppport(3.19); + cc_warnings(); + cc_src_paths('xs-src'); + + print "Mouse configured in XS (--xs)\n"; +} +else{ + print "Mouse configured in Pure Perl (--pp)\n"; +} + if ($Module::Install::AUTHOR) { local @INC = ('lib', @INC); require 'lib/Mouse/Spec.pm'; @@ -32,9 +62,10 @@ if ($Module::Install::AUTHOR) { } else { print "you don't have Moose $require_version. skipping moose compatibility test\n"; } - system("author/generate-mouse-tiny.pl"); } +clean_files 'lib/Mouse/Tiny.pm'; + WriteAll check_nmake => 0; sub create_moose_compatibility_test { @@ -49,7 +80,10 @@ sub create_moose_compatibility_test { # some test does not pass... currently skip it. my %SKIP_TEST = ( '016-trigger.t' => "trigger's argument is incompatble :(", - '010-isa-or.t' => 'Mouse has a [BUG]', + '810-isa-or.t' => "Mouse has a [BUG]", + + '052-undefined-type-in-union.t' => "Mouse accepts undefined type as a member of union types", + '054-anon-leak.t' => 'Moose has memory leaks', '600-tiny-tiny.t' => "Moose doesn't support ::Tiny", '601-tiny-mouse.t' => "Moose doesn't support ::Tiny", @@ -67,7 +101,8 @@ sub create_moose_compatibility_test { return if /failing/; # skip tests in failing/ directories which are Moose specific - return if /100_with_moose/; # tests with Moose + return if /with_moose/; # tests with Moose + return if /100_bugs/; # some tests require Mouse specific files return if /deprecated/; my $basename = File::Basename::basename($_);