Reign in XS portions needed for certain perls under debugging, several things:
[p5sagit/namespace-clean.git] / Makefile.PL
index 054cca9..266f171 100644 (file)
@@ -13,10 +13,22 @@ my %BUILD_DEPS = (
 
 my %RUN_DEPS = (
   'Package::Stash' => '0.23',
-  can_cc() ? (
-    'B::Hooks::EndOfScope' => '0.07', # when changing, also change version in namespace/clean.pm
-    is_smoker() ? ( 'Devel::Hide' => 0 ) : (),  # make sure we smoke the pure-perl version
-  ) : (),
+  'B::Hooks::EndOfScope' => '0.12',
+);
+
+# a sub-namer is needed if using the debugger on some perls
+my %OPT_RUN_DEPS = ( (
+  require 'lib/namespace/clean/_Util.pm'
+    and
+  namespace::clean::_Util::DEBUGGER_NEEDS_CV_RENAME()
+    and
+  namespace::clean::_Util::_namer_load_error()
+    and
+  can_xs()
+)
+  # when changing version, also change $sn_ver in namespace/clean/_Util.pm
+  ? ( 'Sub::Name' => '0.04' )
+  : ()
 );
 
 my %META_BITS = (
@@ -26,7 +38,7 @@ my %META_BITS = (
     # EUMM not supporting nested meta :(
     #repository => {
     #  type => 'git',
-    #  url => 'git://git.shadowcat.co.uk:p5sagit/namespace-clean.git',
+    #  url => 'git://git.shadowcat.co.uk/p5sagit/namespace-clean.git',
     #  web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/namespace-clean.git',
     #}
     #bugtracker => {
@@ -34,7 +46,7 @@ my %META_BITS = (
     #  web => 'http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean',
     #},
 
-    repository => 'git://git.shadowcat.co.uk:p5sagit/namespace-clean.git',
+    repository => 'git://git.shadowcat.co.uk/p5sagit/namespace-clean.git',
     bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean',
   },
 );
@@ -44,9 +56,9 @@ my %WriteMakefileArgs = (
   'VERSION_FROM' => 'lib/namespace/clean.pm',
   'ABSTRACT' => 'Keep imports and functions out of your namespace',
   'AUTHOR' => 'Robert \'phaylon\' Sedlacek <rs@474.at>, Florian Ragwitz <rafl@debian.org>, Jesse Luehrs <doy@tozt.net>',
-
-  'PREREQ_PM' => {
-    %RUN_DEPS,
+  'CONFIGURE_REQUIRES' => { 'ExtUtils::CBuilder' => 0.27 },
+   'PREREQ_PM' => {
+    %RUN_DEPS, %OPT_RUN_DEPS,
     $mymeta_works ? () : (%BUILD_DEPS),
   },
 
@@ -91,6 +103,20 @@ delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
 
 WriteMakefile(%WriteMakefileArgs);
 
+# Secondary compile testing via ExtUtils::CBuilder
+sub can_xs {
+  # Do we have the configure_requires checker?
+  local $@;
+  eval "require ExtUtils::CBuilder;";
+  if ( $@ ) {
+    # They don't obey configure_requires, so it is
+    # someone old and delicate. Try to avoid hurting
+    # them by falling back to an older simpler test.
+    return can_cc();
+  }
+
+  return ExtUtils::CBuilder->new( quiet => 1 )->have_compiler;
+}
 
 # can we locate a (the) C compiler
 sub can_cc {
@@ -121,7 +147,3 @@ sub can_run {
 
   return;
 }
-
-sub is_smoker {
-  return ( $ENV{AUTOMATED_TESTING} && ! $ENV{PERL5_CPANM_IS_RUNNING} && ! $ENV{RELEASE_TESTING} )
-}