- Fixed Makefile.PL so that it uses PM_FILTER instead of rolling its own
[p5sagit/Excel-Template.git] / Makefile.PL
index a7aefc3..27fe9f8 100644 (file)
@@ -2,33 +2,35 @@ use ExtUtils::MakeMaker;
 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
 # the contents of the Makefile that is written.
 
-use File::Spec;
+use strict;
 
 my $prereqs = {
     'Test::Simple'            => 0.44,
+    'Spreadsheet::WriteExcel' => 0.42,
     'XML::Parser'             => 0.01,
-    'IO::File'                => 0.01,
     'IO::Scalar'              => 0.01,
     'File::Basename'          => 0.01,
-    'Spreadsheet::WriteExcel' => 0.42,
 };
 
-# The assumption is the 5.8.0 and greater doesn't need Unicode::String.
+# The assumption is Perl 5.8.0 and greater doesn't need Unicode::String.
+
+my $use_unicode = 0;
 if ($] < 5.008)
 {
     print "Do you want Unicode support? ";
     my $answer = <STDIN>;
     my $need_unicode = $answer =~ /^[Yy]/;
 
-    my $use_unicode = 0;
     if ($need_unicode)
     {
-            $prereqs{'Unicode::String'} = '0.01';
+            $prereqs->{'Unicode::String'} = '0.01';
             $use_unicode = 1;
     }
 }
 
-use_unicode($use_unicode);
+my $pm_filter = $use_unicode
+    ? 'perl -p -e "s!UNI_YES ! !g;s!UNI_NO  !\\#!g"'
+    : 'perl -p -e "s!UNI_NO  ! !g;s!UNI_YES !\\#!g"';
 
 WriteMakefile(
     NAME         => 'Excel::Template',
@@ -36,49 +38,5 @@ WriteMakefile(
     AUTHOR       => 'Rob Kinyon (rob.kinyon@gmail.com)',
     ABSTRACT     => 'Excel::Template',
     PREREQ_PM    => $prereqs,
+    PM_FILTER    => $pm_filter,
 );
-
-sub use_unicode
-{
-    my $using_unicode = shift;
-
-    my @filenames = map {
-        File::Spec->catfile(
-            qw( lib Excel Template ),
-            @{$_},
-        )
-    } ( [ qw( Element Cell.pm_ ) ], [ qw( TextObject.pm_ ) ] );
-
-    foreach my $filename (@filenames)
-    {
-        open(IN_FILE, $filename)
-            or die "Cannot open '$filename' for reading: $!\n";
-        my @lines = <IN_FILE>;
-        close(IN_FILE);
-
-        if ($using_unicode)
-        {
-            for (@lines)
-            {
-                s/^UNI_YES / /;
-                s/^UNI_NO  /#/;
-            }
-        }
-        else
-        {
-            for (@lines)
-            {
-                s/^UNI_YES /#/;
-                s/^UNI_NO  / /;
-            }
-        }
-
-        $filename =~ s/_$//;
-        open(OUT_FILE, ">$filename")
-            or die "Cannot open '$filename' for writing: $!\n";
-        print OUT_FILE @lines;
-        close(OUT_FILE);
-    }
-
-    return 1;
-}