- fix/simplify META.yml generation - we now generate META.yml at
authorTony Cook <tony@develop=help.com>
Tue, 21 Feb 2006 04:54:43 +0000 (04:54 +0000)
committerTony Cook <tony@develop=help.com>
Tue, 21 Feb 2006 04:54:43 +0000 (04:54 +0000)
  Makefile.PL time, since trying to work with EU::MM to generate a
  custom META.yml was a waste.

Changes
CountColor/Makefile.PL
DynTest/Makefile.PL
Flines/Makefile.PL
MANIFEST
Makefile.PL
Mandelbrot/Makefile.PL
TODO
metafile.pl [deleted file]

diff --git a/Changes b/Changes
index e9e7f5b..1f3a29b 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1361,6 +1361,9 @@ Revision history for Perl extension Imager.
 - make win32.c const happy
 - make raw.c C89 compliant
 - added version/level to the API function table structure
+- fix/simplify META.yml generation - we now generate META.yml at
+  Makefile.PL time, since trying to work with EU::MM to generate a 
+  custom META.yml was a waste.
 
 =================================================================
 
index 908937a..6692103 100644 (file)
@@ -1,5 +1,4 @@
 use ExtUtils::MakeMaker;
-require "../metafile.pl";
 
 my %opts = 
   (
index 1b2ec30..70c871a 100644 (file)
@@ -1,5 +1,4 @@
 use ExtUtils::MakeMaker;
-require "../metafile.pl";
 
 my %opts = 
   (
index 5ca766f..4eab1b2 100644 (file)
@@ -1,5 +1,4 @@
 use ExtUtils::MakeMaker;
-require "../metafile.pl";
 
 my %opts = 
   (
index fa5001c..6e1b6b0 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -125,7 +125,6 @@ log.c
 log.h
 map.c
 maskimg.c
-metafile.pl     Common META.yml generation
 palimg.c
 plug.h
 png.c
index 3b4cd46..5aace31 100644 (file)
@@ -6,7 +6,6 @@ use Config;
 use File::Spec;
 use Getopt::Long;
 use vars qw(%Recommends);
-require "metafile.pl";
 use ExtUtils::Manifest qw(maniread);
 use vars qw(%formats $VERBOSE $INCPATH $LIBPATH $NOLOG $DEBUG_MALLOC $MANUAL $CFLAGS $LFLAGS $DFLAGS);
 
@@ -168,11 +167,17 @@ if ($ExtUtils::MakeMaker::VERSION > 6.06) {
   $opts{AUTHOR} = 'Tony Cook <tony@imager.perl.org>, Arnar M. Hrafnkelsson';
   $opts{ABSTRACT} = 'Perl extension for Generating 24 bit Images';
 }
+if ($ExtUtils::MakeMaker::VERSION > 6.10) {
+  $opts{NO_META} = 1;
+}
 
 make_imconfig(\@defines);
 
 if ($VERBOSE) { print Dumper(\%opts); }
 mkdir('testout',0777); # since we cannot include it in the archive.
+
+make_metafile(\%opts);
+
 WriteMakefile(%opts);
 
 exit;
@@ -815,3 +820,49 @@ sub gen_PM {
 
   \%pm;
 }
+
+sub make_metafile {
+  my ($opts) = @_;
+
+  # extract the version
+  my $version = MM->parse_version($opts->{VERSION_FROM})
+    or die "Could not extract version number from $opts->{VERSION_FROM}\n";
+
+  my $meta = <<YAML;
+--- #YAML:1.0
+name: $opts->{NAME}
+version: $version
+version_from: $opts->{VERSION_FROM}
+author: $opts->{AUTHOR}
+abstract: $opts->{ABSTRACT}
+installdirs: site
+YAML
+  if (keys %{$Recommends{$opts->{NAME}}}) {
+    $meta .= "recommends:\n";
+    while (my ($module, $version) = each %{$Recommends{$opts->{NAME}}}) {
+      $meta .= "  $module: $version\n";
+    }
+  }
+  $meta .= <<YAML;
+license: perl
+dynamic_config: 1
+distribution_type: module
+generated_by: $opts->{NAME} version $version
+YAML
+  my $save_meta;
+  if (open META, "< META.yml") {
+    my $old_meta = do { local $/; <META> };
+    close META;
+
+    $save_meta = $old_meta ne $meta;
+  }
+  else {
+    ++$save_meta;
+  }
+  if ($save_meta) {
+    print "Updating META.yml\n";
+    open META, "> META.yml" or die "Cannot create META.yml: $!";
+    print META $meta;
+    close META;
+  }
+}
index d0a60c4..ff5f4bd 100644 (file)
@@ -1,5 +1,4 @@
 use ExtUtils::MakeMaker;
-require "../metafile.pl";
 
 my %opts = 
   (
diff --git a/TODO b/TODO
index f704a69..9708b8a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,11 +8,11 @@ not commitments.
 
 BEFORE 0.48:
 
-scale() fixes/docs, Imager::Transformations going over.
+scale() fixes/docs, Imager::Transformations going over. (done)
 
-do some more malloc checks
+do some more malloc checks (done)
 
-scan $Config{libspath} for directories if we can.
+scan $Config{libspath} for directories if we can. (done)
 
 0.47:
 
diff --git a/metafile.pl b/metafile.pl
deleted file mode 100644 (file)
index ef24bdc..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# some versions of EU::MM have problems with recursive Makefile.PLs with
-# this method defined.
-undef &MY::metafile;
-
-sub MY::metafile {
-  my ($self) = @_;
-
-  my $meta = <<YAML;
---- #YAML:1.0
-name: $self->{NAME}
-version: $self->{VERSION}
-version_from: $self->{VERSION_FROM}
-author: $self->{AUTHOR}
-abstract: $self->{ABSTRACT}
-installdirs: $self->{INSTALLDIRS}
-YAML
-  if (keys %{$Recommends{$self->{NAME}}}) {
-    $meta .= "recommends:\n";
-    while (my ($module, $version) = each %{$Recommends{$self->{NAME}}}) {
-      $meta .= "$module: $version\n";
-    }
-  }
-  $meta .= <<YAML;
-license: perl
-dynamic_config: 1
-distribution_type: module
-generated_by: $self->{NAME} version $self->{VERSION}
-YAML
-  open META, "> meta.tmp" or die "Cannot create meta.tmp: $!";
-  print META $meta;
-  close META;
-  
-  return sprintf "metafile :\n\t\$(CP) meta.tmp META.yml\n";
-}
-
-1;