Blame Makefile.PL

Packit 0b03d9
use strict;
Packit 0b03d9
use warnings;
Packit 0b03d9
Packit 0b03d9
use ExtUtils::MakeMaker;
Packit 0b03d9
use File::Spec::Functions qw(catfile);
Packit 0b03d9
Packit 0b03d9
ExtUtils::MakeMaker->VERSION(6.98) if -f '.gitignore';
Packit 0b03d9
Packit 0b03d9
# VOS and VMS can't handle dodgy plugin names
Packit 0b03d9
# and VOS can't even unpack them so we create them on the
Packit 0b03d9
# fly and only run the tests if they're present
Packit 0b03d9
my %dodgy_files = (
Packit 0b03d9
    catfile('OddTest', 'Plugin', '-Dodgy.pm')   => 'OddTest::Plugin::-Dodgy',
Packit 0b03d9
    catfile('EditorJunk', 'Plugin', '#Bar.pm#') => 'EditorJunk::Bar',
Packit 0b03d9
    catfile('EditorJunk', 'Plugin', '.#Bar.pm') => 'EditorJunk::Bar',
Packit 0b03d9
);
Packit 0b03d9
Packit 0b03d9
my @files;
Packit 0b03d9
unless (grep { lc($^O) eq $_ } qw(vms vos)) {
Packit 0b03d9
    foreach my $test (keys %dodgy_files) {
Packit 0b03d9
        my ($file) = (catfile("t", "lib", $test)=~/^(.*)$/);
Packit 0b03d9
        if (open(FH, ">$file")) {
Packit 0b03d9
            my $name = $dodgy_files{$test};
Packit 0b03d9
            print FH "package $name;\nsub new {}\n1;";
Packit 0b03d9
            close(FH);
Packit 0b03d9
            push @files, $file;
Packit 0b03d9
        }
Packit 0b03d9
    }
Packit 0b03d9
}
Packit 0b03d9
Packit 0b03d9
my %WriteMakefileArgs = (
Packit 0b03d9
    NAME                => 'Module::Pluggable',
Packit 0b03d9
    VERSION_FROM        => 'lib/Module/Pluggable.pm',
Packit 0b03d9
    ABSTRACT_FROM       => 'lib/Module/Pluggable.pm',
Packit 0b03d9
    AUTHOR              => 'Simon Wistow <simon@thegestalt.org>',
Packit 0b03d9
    LICENSE             => 'perl_5',
Packit 0b03d9
    MIN_PERL_VERSION    => '5.00503',
Packit 0b03d9
    INSTALLDIRS         => ($] >= 5.008009 && $] <= 5.011000 ? 'perl' : 'site'),
Packit 0b03d9
Packit 0b03d9
    CONFIGURE_REQUIRES => {
Packit 0b03d9
        'ExtUtils::MakeMaker'   => '0',
Packit 0b03d9
    },
Packit 0b03d9
    PREREQ_PM => {
Packit 0b03d9
        'if'                    => '0',
Packit 0b03d9
        'File::Basename'        => '0',
Packit 0b03d9
        'File::Spec'            => '3.00',
Packit 0b03d9
        'Exporter'              => '5.57',  # use Exporter 'import'
Packit 0b03d9
        'File::Find'            => '0',
Packit 0b03d9
        'File::Spec::Functions' => '0',
Packit 0b03d9
        'strict'                => '0',
Packit 0b03d9
    },
Packit 0b03d9
    TEST_REQUIRES => {
Packit 0b03d9
        'Test::More'            => '0',
Packit 0b03d9
        'Cwd'                   => '0',
Packit 0b03d9
        'Data::Dumper'          => '0',
Packit 0b03d9
        'File::Copy'            => '0',
Packit 0b03d9
        'File::Find'            => '0',
Packit 0b03d9
        'File::Path'            => '0',
Packit 0b03d9
        'File::Spec::Functions' => '0',
Packit 0b03d9
        'File::Temp'            => '0',
Packit 0b03d9
        'base'                  => '0',
Packit 0b03d9
        'FindBin'               => '0',
Packit 0b03d9
        'strict'                => '0',
Packit 0b03d9
        'warnings'              => '0',
Packit 0b03d9
    },
Packit 0b03d9
Packit 0b03d9
    META_MERGE => {
Packit 0b03d9
        'meta-spec' => { version => 2 },
Packit 0b03d9
        dynamic_config => 0,
Packit 0b03d9
        resources => {
Packit 0b03d9
            repository => {
Packit 0b03d9
                url => 'https://github.com/simonwistow/Module-Pluggable.git',
Packit 0b03d9
                web => 'https://github.com/simonwistow/Module-Pluggable',
Packit 0b03d9
                type => 'git',
Packit 0b03d9
            },
Packit 0b03d9
            bugtracker => {
Packit 0b03d9
                mailto => 'bug-Module-Pluggable@rt.cpan.org',
Packit 0b03d9
                web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Module-Pluggable',
Packit 0b03d9
            },
Packit 0b03d9
        },
Packit 0b03d9
        prereqs => {
Packit 0b03d9
            runtime => {
Packit 0b03d9
                recommends => {
Packit 0b03d9
                    'Module::Runtime' => '0.012',
Packit 0b03d9
                },
Packit 0b03d9
            },
Packit 0b03d9
            test => {
Packit 0b03d9
                suggests => {
Packit 0b03d9
                    'App::Fatpacker' => '0.010000',
Packit 0b03d9
                },
Packit 0b03d9
            },
Packit 0b03d9
        },
Packit 0b03d9
        optional_features => {
Packit 0b03d9
            module_runtime => {
Packit 0b03d9
                description => "Optionally use Module::Runtime for requiring plugins rather than homegrown system",
Packit 0b03d9
                prereqs => {
Packit 0b03d9
                    runtime => {
Packit 0b03d9
                        requires => {
Packit 0b03d9
                            'Module::Runtime' => '0.012',
Packit 0b03d9
                        }
Packit 0b03d9
                    }
Packit 0b03d9
                }
Packit 0b03d9
            }
Packit 0b03d9
        }
Packit 0b03d9
    },
Packit 0b03d9
);
Packit 0b03d9
Packit 0b03d9
# degrade gracefully for older EUMM/older perls
Packit 0b03d9
Packit 0b03d9
if (!eval { ExtUtils::MakeMaker->VERSION('6.6303') }) {
Packit 0b03d9
    $WriteMakefileArgs{BUILD_REQUIRES} = $WriteMakefileArgs{TEST_REQUIRES};
Packit 0b03d9
    delete $WriteMakefileArgs{TEST_REQUIRES};
Packit 0b03d9
}
Packit 0b03d9
Packit 0b03d9
if (!eval { ExtUtils::MakeMaker->VERSION('6.5501') }) {
Packit 0b03d9
    @{$WriteMakefileArgs{PREREQ_PM}}{ keys %{$WriteMakefileArgs{BUILD_REQUIRES}} } =
Packit 0b03d9
        @{$WriteMakefileArgs{BUILD_REQUIRES}}{ keys %{$WriteMakefileArgs{BUILD_REQUIRES}} };
Packit 0b03d9
Packit 0b03d9
    delete $WriteMakefileArgs{BUILD_REQUIRES};
Packit 0b03d9
}
Packit 0b03d9
Packit 0b03d9
WriteMakefile(%WriteMakefileArgs);