diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2014-09-21 17:50:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2014-09-21 17:50:39 +0000 |
commit | 37bd679ad9ac185930fa8fea7cd11b27587ae478 (patch) | |
tree | 5e066618802a14b7c8b3e7ecc7e234c669c9d10b /Makefile.PL | |
download | Package-Stash-tarball-master.tar.gz |
Package-Stash-0.37HEADPackage-Stash-0.37master
Diffstat (limited to 'Makefile.PL')
-rw-r--r-- | Makefile.PL | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/Makefile.PL b/Makefile.PL new file mode 100644 index 0000000..f78de94 --- /dev/null +++ b/Makefile.PL @@ -0,0 +1,165 @@ +# This Makefile.PL for Package-Stash was generated by +# inc::MMPackageStash <self> +# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.27. +# Don't edit it but the dist.ini and plugins used to construct it. + +use strict; +use warnings; + +use 5.008001; +use ExtUtils::MakeMaker; +check_conflicts(); + +my %WriteMakefileArgs = ( + "ABSTRACT" => "routines for manipulating stashes", + "AUTHOR" => "Jesse Luehrs <doy\@tozt.net>", + "CONFIGURE_REQUIRES" => { + "Config" => 0, + "Dist::CheckConflicts" => "0.02", + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Text::ParseWords" => 0 + }, + "DISTNAME" => "Package-Stash", + "EXE_FILES" => [ + "bin/package-stash-conflicts" + ], + "LICENSE" => "perl", + "NAME" => "Package::Stash", + "PREREQ_PM" => { + "B" => 0, + "Carp" => 0, + "Dist::CheckConflicts" => "0.02", + "Getopt::Long" => 0, + "Module::Implementation" => "0.06", + "Scalar::Util" => 0, + "Symbol" => 0, + "constant" => 0, + "strict" => 0, + "warnings" => 0 + }, + "TEST_REQUIRES" => { + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.88", + "Test::Requires" => 0, + "base" => 0, + "lib" => 0 + }, + "VERSION" => "0.37", + "test" => { + "TESTS" => "t/*.t t/impl-selection/*.t" + } +); + +my %FallbackPrereqs = ( + "B" => 0, + "Carp" => 0, + "Dist::CheckConflicts" => "0.02", + "File::Spec" => 0, + "Getopt::Long" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Module::Implementation" => "0.06", + "Scalar::Util" => 0, + "Symbol" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.88", + "Test::Requires" => 0, + "base" => 0, + "constant" => 0, + "lib" => 0, + "strict" => 0, + "warnings" => 0 +); + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = 0.26 + if !parse_args()->{PUREPERL_ONLY} && can_cc(); + +WriteMakefile(%WriteMakefileArgs); + +use Config (); +use File::Spec (); +use Text::ParseWords (); + +# check if we can run some command +sub can_run { + my ($cmd) = @_; + + my $_cmd = $cmd; + return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd)); + + for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { + next if $dir eq ''; + my $abs = File::Spec->catfile($dir, $_[0]); + return $abs if (-x $abs or $abs = MM->maybe_command($abs)); + } + + return; +} + +# can we locate a (the) C compiler +sub can_cc { + my @chunks = split(/ /, $Config::Config{cc}) or return; + + # $Config{cc} may contain args; try to find out the program part + while (@chunks) { + return can_run("@chunks") || (pop(@chunks), next); + } + + return; +} + +# XXX this is gross, but apparently it's the least gross option? +sub parse_args { + my $tmp = {}; + # copied from EUMM + ExtUtils::MakeMaker::parse_args( + $tmp, + Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''), + @ARGV, + ); + return $tmp->{ARGS} || {}; +} + +sub check_conflicts { + if ( eval { require 'lib/Package/Stash/Conflicts.pm'; 1; } ) { + if ( eval { Package::Stash::Conflicts->check_conflicts; 1 } ) { + return; + } + else { + my $err = $@; + $err =~ s/^/ /mg; + warn "***\n$err***\n"; + } + } + else { + print <<'EOF'; +*** + Your toolchain doesn't support configure_requires, so Dist::CheckConflicts + hasn't been installed yet. You should check for conflicting modules + manually using the 'package-stash-conflicts' script that is installed with + this distribution once the installation finishes. +*** +EOF + } + + return if $ENV{AUTOMATED_TESTING} || $ENV{NONINTERACTIVE_TESTING}; + + # More or less copied from Module::Build + return if $ENV{PERL_MM_USE_DEFAULT}; + return unless -t STDIN && ( -t STDOUT || !( -f STDOUT || -c STDOUT ) ); + + sleep 4; +} |