Workaround for double-call of destructors (based on 3d56e026 and e1d9e578)
[dbsrgits/DBIx-Class.git] / maint / Makefile.PL.inc / 50_redefine_makefile_flow.pl
index 3813e80..251c184 100644 (file)
@@ -4,10 +4,13 @@
   package MY;
   sub distdir {
     (my $snippet = shift->SUPER::distdir(@_)) =~ s/^create_distdir :/create_distdir_copy_manifested :/;
+    no warnings 'qw';
     return <<"EOM";
 $snippet
 
-create_distdir : clonedir_generate_files clonedir_post_generate_files fresh_manifest create_distdir_copy_manifested clonedir_cleanup_generated_files
+.NOTPARALLEL :
+
+create_distdir : check_create_distdir_prereqs clonedir_generate_files clonedir_post_generate_files fresh_manifest create_distdir_copy_manifested clonedir_cleanup_generated_files
 \t\$(NOECHO) \$(NOOP)
 
 clonedir_generate_files :
@@ -19,6 +22,33 @@ clonedir_post_generate_files :
 clonedir_cleanup_generated_files :
 \t\$(NOECHO) \$(NOOP)
 
+check_create_distdir_prereqs :
+\t\$(NOECHO) @{[
+  $mm_proto->oneliner("1", [qw( -Ilib -MDBIx::Class::Optional::Dependencies=-die_without,dist_dir )])
+]}
+
+EOM
+  }
+}
+
+# M::I inserts its own default postamble, so we can't easily override upload
+# but we can still hook postamble in EU::MM
+{
+  package MY;
+
+  sub postamble {
+    my $snippet = shift->SUPER::postamble(@_);
+    no warnings 'qw';
+    return <<"EOM";
+$snippet
+
+upload :: check_create_distdir_prereqs check_upload_dist_prereqs
+
+check_upload_dist_prereqs :
+\t\$(NOECHO) @{[
+  $mm_proto->oneliner("1", [qw( -Ilib -MDBIx::Class::Optional::Dependencies=-die_without,dist_upload )])
+]}
+
 EOM
   }
 }