Move the SQLite test dependency specification to optdeps
[dbsrgits/DBIx-Class.git] / maint / Makefile.PL.inc / 12_authordeps.pl
index c4944d0..398722e 100644 (file)
@@ -32,12 +32,19 @@ else {
 EOW
 
   require DBIx::Class::Optional::Dependencies;
-  my %reqs_for_group = %{DBIx::Class::Optional::Dependencies->req_group_list};
 
   # exclude the rdbms_* groups which are for DBIC users
-  $opt_testdeps = {
-    map { %{$reqs_for_group{$_}} } grep { !/^rdbms_/ } keys %reqs_for_group
-  };
+  # and the moose-related stuff iff we are under 5.8.3
+  $opt_testdeps = DBIx::Class::Optional::Dependencies->req_list_for([
+    grep {
+      !/^rdbms_|^dist_/
+        and
+      ($] > 5.008002 or !/^ (?: test_ )? (?: admin | admin_script | replicated ) $/x )
+    } keys %{DBIx::Class::Optional::Dependencies->req_group_list}
+  ]);
+
+  # this one is "special" - we need it both in optdeps and as a hard dep
+  delete $opt_testdeps->{'DBD::SQLite'};
 
   print "Including all optional deps\n";
   $reqs->{test_requires} = {
@@ -66,6 +73,9 @@ EOW
 # this will run after the Makefile is written and the main Makefile.PL terminates
 #
 END {
+  # shit already hit the fan
+  return if $?;
+
   # Re-write META.yml at the end to _exclude_ all forced build-requires (we do not
   # want to ship this) We are also not using M::I::AuthorRequires as this will be
   # an extra dep, and deps in Makefile.PL still suck
@@ -88,9 +98,18 @@ END {
 
   if (keys %removed_build_requires) {
     print "Regenerating META with author requires excluded\n";
+    # M::I understands unicode in meta but does not write with the right
+    # layers - fhtagn!!!
+    local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /Wide character in print/ };
     Meta->write;
   }
 
+  # strip possible crlf from META
+  if ($^O eq 'MSWin32' or $^O eq 'cygwin') {
+    local $ENV{PERLIO} = 'unix';
+    system( $^X, qw( -MExtUtils::Command -e dos2unix -- META.yml),  );
+  }
+
   # test that we really took things away (just in case, happened twice somehow)
   if (! -f 'META.yml') {
     warn "No META.yml generated?! aborting...\n";
@@ -99,6 +118,12 @@ END {
   }
   my $meta = do { local @ARGV = 'META.yml'; local $/; <> };
 
+  $meta =~ /^\Qname: DBIx-Class\E$/m or do {
+    warn "Seemingly malformed META.yml...?\n";
+    unlink 'Makefile';
+    exit 1;
+  };
+
   # this is safe as there is a fatal check earlier in the main Makefile.PL
   # to make sure there are no duplicates (i.e. $opt_testdeps does not contain
   # any real dependencies)