From 135d30e336c5a728cb1c557fb264a0252bfccd4b Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Tue, 21 Feb 2006 04:54:43 +0000 Subject: [PATCH] - 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. --- Changes | 3 +++ CountColor/Makefile.PL | 1 - DynTest/Makefile.PL | 1 - Flines/Makefile.PL | 1 - MANIFEST | 1 - Makefile.PL | 53 +++++++++++++++++++++++++++++++++++++++++- Mandelbrot/Makefile.PL | 1 - TODO | 6 ++--- metafile.pl | 36 ---------------------------- 9 files changed, 58 insertions(+), 45 deletions(-) delete mode 100644 metafile.pl diff --git a/Changes b/Changes index e9e7f5b5..1f3a29b1 100644 --- 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. ================================================================= diff --git a/CountColor/Makefile.PL b/CountColor/Makefile.PL index 908937a6..6692103d 100644 --- a/CountColor/Makefile.PL +++ b/CountColor/Makefile.PL @@ -1,5 +1,4 @@ use ExtUtils::MakeMaker; -require "../metafile.pl"; my %opts = ( diff --git a/DynTest/Makefile.PL b/DynTest/Makefile.PL index 1b2ec30f..70c871a8 100644 --- a/DynTest/Makefile.PL +++ b/DynTest/Makefile.PL @@ -1,5 +1,4 @@ use ExtUtils::MakeMaker; -require "../metafile.pl"; my %opts = ( diff --git a/Flines/Makefile.PL b/Flines/Makefile.PL index 5ca766f5..4eab1b26 100644 --- a/Flines/Makefile.PL +++ b/Flines/Makefile.PL @@ -1,5 +1,4 @@ use ExtUtils::MakeMaker; -require "../metafile.pl"; my %opts = ( diff --git a/MANIFEST b/MANIFEST index fa5001c9..6e1b6b00 100644 --- 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 diff --git a/Makefile.PL b/Makefile.PL index 3b4cd463..5aace310 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -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 , 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 = <{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 .= <{NAME} version $version +YAML + my $save_meta; + if (open META, "< META.yml") { + my $old_meta = do { local $/; }; + 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; + } +} diff --git a/Mandelbrot/Makefile.PL b/Mandelbrot/Makefile.PL index d0a60c48..ff5f4bdd 100644 --- a/Mandelbrot/Makefile.PL +++ b/Mandelbrot/Makefile.PL @@ -1,5 +1,4 @@ use ExtUtils::MakeMaker; -require "../metafile.pl"; my %opts = ( diff --git a/TODO b/TODO index f704a69f..9708b8a4 100644 --- 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 index ef24bdcf..00000000 --- a/metafile.pl +++ /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 = <{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 .= <{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; -- 2.39.5