-use inc::Module::Install 0.91;
+use strict;
+use warnings FATAL => 'all';
use 5.008001;
+use ExtUtils::MakeMaker;
+(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
use ExtUtils::Depends;
+my $pkg = ExtUtils::Depends->new('Devel::Declare', 'B::Hooks::OP::Check');
-name 'Devel-Declare';
-all_from 'lib/Devel/Declare.pm';
-
-requires 'Scalar::Util' => 1.11; # set_prototype appeared in this version
-requires 'B::Hooks::OP::Check' => '0.19';
-requires 'B::Hooks::EndOfScope' => '0.05';
-requires 'Sub::Name';
-
-build_requires 'B::Hooks::OP::Check' => '0.19';
-
-# minimum version that works on Win32+gcc
-configure_requires 'ExtUtils::Depends' => 0.302;
-
-# minimum version that depends on ExtUtils::Depends 0.302
-configure_requires 'B::Hooks::OP::Check' => '0.19';
-
-test_requires 'Test::More' => '0.88';
-test_requires 'Test::Requires' => '0';
+my %TEST_DEPS = (
+ 'B::Hooks::OP::Check' => '0.19',
+ 'Test::More' => '0.88',
+ 'Test::Requires' => '0',
+);
-# r/w: p5sagit@git.shadowcat.co.uk:Devel-Declare.git
-repository 'git://git.shadowcat.co.uk/p5sagit/Devel-Declare.git';
+# have to do this since old EUMM dev releases miss the eval $VERSION line
+my $mymeta_works = do { no warnings; $ExtUtils::MakeMaker::VERSION >= 6.5707 };
-postamble(<<'EOM');
-$(OBJECT) : stolen_chunk_of_toke.c
-EOM
-
-my $pkg = ExtUtils::Depends->new('Devel::Declare', 'B::Hooks::OP::Check');
+sub MY::postamble {
+ '$(OBJECT) : stolen_chunk_of_toke.c'
+}
WriteMakefile(
- dist => {
- PREOP => 'pod2text lib/Devel/Declare.pm >README'
- },
- $pkg->get_makefile_vars,
+ NAME => 'Devel::Declare',
+ AUTHOR => ['Matt S Trout - <mst@shadowcat.co.uk> - original author'],
+ VERSION_FROM => 'lib/Devel/Declare.pm',
+ MIN_PERL_VERSION => '5.008001',
+
+ CONFIGURE_REQUIRES => {
+ # minimum version that works on Win32+gcc
+ 'ExtUtils::Depends' => 0.302,
+
+ # minimum version that depends on ExtUtils::Depends 0.302
+ 'B::Hooks::OP::Check' => '0.19',
+ },
+
+ PREREQ_PM => {
+ 'Scalar::Util' => 1.11, # set_prototype appeared in this version
+ 'B::Hooks::OP::Check' => '0.19',
+ 'B::Hooks::EndOfScope' => '0.05',
+ 'Sub::Name' => 0,
+ ($mymeta_works ? () : (%TEST_DEPS)),
+ },
+
+ $mymeta_works ? (BUILD_REQUIRES => \%TEST_DEPS) : (),
+
+ META_MERGE => {
+ dynamic_config => 0,
+
+ resources => {
+ # r/w: p5sagit@git.shadowcat.co.uk:Devel-Declare.git
+ repository => 'git://git.shadowcat.co.uk/p5sagit/Devel-Declare.git',
+ homepage => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/Devel-Declare.git',
+ },
+ },
+
+ XS => { 'Declare.xs' => 'Declare.c' },
+
+ $pkg->get_makefile_vars,
);
+
--- /dev/null
+#!/usr/bin/env perl
+
+use strict;
+use warnings FATAL => 'all';
+use autodie;
+
+chomp(my $LATEST = qx(grep '^[0-9]' Changes | head -1 | awk '{print \$1}'));
+
+my @parts = split /\./, $LATEST;
+if (@parts == 2) {
+ @parts[1,2] = $parts[1] =~ /(\d{1,3})(\d{1,3})/;
+}
+
+my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts);
+
+my %bump_part = (major => 0, minor => 1, bugfix => 2);
+
+my $bump_this = $bump_part{$ARGV[0]||'bugfix'};
+
+die "no idea which part to bump - $ARGV[0] means nothing to me"
+ unless defined($bump_this);
+
+my @new_parts = @parts;
+
+$new_parts[$bump_this]++;
+
+my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts);
+
+warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL\n";
+
+for my $PM_FILE (qw(
+ lib/Devel/Declare.pm
+ lib/Devel/Declare/Context/Simple.pm
+ lib/Devel/Declare/MethodInstaller/Simple.pm
+)) {
+ my $file = do { local (@ARGV, $/) = ($PM_FILE); <> };
+
+ $file =~ s/(?<=\$VERSION = ')${\quotemeta $OLD_DECIMAL}/${NEW_DECIMAL}/
+ or die "unable to bump version number in $PM_FILE";
+
+ open my $out, '>', $PM_FILE;
+
+ print $out $file;
+}