From: Graham Knop Date: Sun, 18 Oct 2015 15:29:49 +0000 (-0400) Subject: distar-ify X-Git-Tag: v0.02~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=10f4886c0dc6d23c66beac63c67fe59f78ba4ec0;p=p5sagit%2FDevel-GlobalDestruction-XS.git distar-ify --- diff --git a/.gitignore b/.gitignore index 12b5d29..ee7d37f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,19 @@ -.* -!.gitignore -Makefile* -!Makefile.PL -*META.* -blib -build -inc -pm_to_blib -MANIFEST* -!MANIFEST.SKIP -Debian* -README -Devel-GlobalDestruction-XS-* +/Makefile +/Makefile.old +/META.yml +/META.json +/MYMETA.yml +/MYMETA.json +/blib/ +/build/ +/inc/ +/pm_to_blib +/MANIFEST +/MANIFEST.bak +/MANIFEST.SKIP +/Devel-GlobalDestruction-XS-*/ +/Devel-GlobalDestruction-XS-*.tar.gz +/Distar/ *.bs *.o *.c diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP deleted file mode 100644 index bf9442e..0000000 --- a/MANIFEST.SKIP +++ /dev/null @@ -1,48 +0,0 @@ -# Avoid version control files. -\bRCS\b -\bCVS\b -\bSCCS\b -,v$ -\B\.svn\b -\B\.git\b -\B\.gitignore\b -\b_darcs\b - -# no mymeta -\bMYMETA\. - -# Avoid Makemaker generated and utility files. -\bMANIFEST\.bak -\bMakefile$ -\bblib/ -\bMakeMaker-\d -\bpm_to_blib\.ts$ -\bpm_to_blib$ -\bblibdirs\.ts$ # 6.18 through 6.25 generated this - -# Avoid Module::Build generated and utility files. -\bBuild$ -\b_build/ - -# Avoid temp and backup files. -~$ -\.old$ -\#$ -\b\.# -\.bak$ - -# Avoid Devel::Cover files. -\bcover_db\b - -### DEFAULT MANIFEST.SKIP ENDS HERE #### - -\.DS_Store$ -\.sw.$ -(\w+-)*(\w+)-\d\.\d+(?:\.tar\.gz)?$ - -\.t\.log$ - -\.prove$ - -# XS shit -\.(?:bs|c|o)$ diff --git a/Makefile.PL b/Makefile.PL index 7f48e9d..699df18 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,41 +1,71 @@ use strict; -use warnings; - -require 5.006; - +use warnings FATAL => 'all'; +use 5.006; use ExtUtils::MakeMaker; -my $mymeta_works = eval { ExtUtils::MakeMaker->VERSION('6.5707'); 1 }; -my $mymeta = $mymeta_works || eval { ExtUtils::MakeMaker->VERSION('6.5702'); 1 }; - -my %WriteMakefileArgs = ( - NAME => 'Devel::GlobalDestruction::XS', - AUTHOR => 'Yuval Kogman ', - VERSION_FROM => 'lib/Devel/GlobalDestruction/XS.pm', - ABSTRACT_FROM => 'lib/Devel/GlobalDestruction/XS.pm', - LICENSE => 'perl', - INSTALLDIRS => 'site', - PL_FILES => { }, - MIN_PERL_VERSION => '5.006', - META_ADD => { - 'meta-spec' => { version => 2.0 }, - resources => { - repository => { - url => 'git://git.shadowcat.co.uk/p5sagit/Devel-GlobalDestruction-XS.git', - web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/Devel-GlobalDestruction-XS.git', - type => 'git', - }, - bugtracker => { - web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Devel-GlobalDestruction-XS', - mailto => 'bug-Devel-GlobalDestruction-XS@rt.cpan.org', - }, - x_IRC => 'irc://irc.perl.org/#toolchain', - license => [ 'http://dev.perl.org/licenses/' ], +(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml'; + +my %META = ( + name => 'Devel-GlobalDestruction-XS', + license => 'perl_5', + dynamic_config => 0, + prereqs => {}, + resources => { + repository => { + url => 'git://git.shadowcat.co.uk/p5sagit/Devel-GlobalDestruction-XS.git', + web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/Devel-GlobalDestruction-XS.git', + type => 'git', }, - requires => { }, - dynamic_config => 0, + bugtracker => { + web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Devel-GlobalDestruction-XS', + mailto => 'bug-Devel-GlobalDestruction-XS@rt.cpan.org', + }, + x_IRC => 'irc://irc.perl.org/#toolchain', + license => [ 'http://dev.perl.org/licenses/' ], }, - ($mymeta and !$mymeta_works) ? ( 'NO_MYMETA' => 1 ) : (), ); -WriteMakefile(%WriteMakefileArgs); +my %MM_ARGS = (); + +## BOILERPLATE ############################################################### +require ExtUtils::MakeMaker; +(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml'; + +# have to do this since old EUMM dev releases miss the eval $VERSION line +my $eumm_version = eval $ExtUtils::MakeMaker::VERSION; +my $mymeta = $eumm_version >= 6.57_02; +my $mymeta_broken = $mymeta && $eumm_version < 6.57_07; + +($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g; +($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g; +$META{license} = [ $META{license} ] + if $META{license} && !ref $META{license}; +$MM_ARGS{LICENSE} = $META{license}[0] + if $META{license} && $eumm_version >= 6.30; +$MM_ARGS{NO_MYMETA} = 1 + if $mymeta_broken; +$MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META } + unless -f 'META.yml'; + +for (qw(configure build test runtime)) { + my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES'; + my $r = $MM_ARGS{$key} = { + %{$META{prereqs}{$_}{requires} || {}}, + %{delete $MM_ARGS{$key} || {}}, + }; + defined $r->{$_} or delete $r->{$_} for keys %$r; +} + +$MM_ARGS{MIN_PERL_VERSION} = delete $MM_ARGS{PREREQ_PM}{perl} || 0; + +delete $MM_ARGS{MIN_PERL_VERSION} + if $eumm_version < 6.47_01; +$MM_ARGS{BUILD_REQUIRES} = {%{$MM_ARGS{BUILD_REQUIRES}}, %{delete $MM_ARGS{TEST_REQUIRES}}} + if $eumm_version < 6.63_03; +$MM_ARGS{PREREQ_PM} = {%{$MM_ARGS{PREREQ_PM}}, %{delete $MM_ARGS{BUILD_REQUIRES}}} + if $eumm_version < 6.55_01; +delete $MM_ARGS{CONFIGURE_REQUIRES} + if $eumm_version < 6.51_03; + +ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS); +## END BOILERPLATE ########################################################### diff --git a/maint/Makefile.PL.include b/maint/Makefile.PL.include new file mode 100644 index 0000000..0e89eb9 --- /dev/null +++ b/maint/Makefile.PL.include @@ -0,0 +1,12 @@ +BEGIN { -e 'Distar' or system("git clone git://git.shadowcat.co.uk/p5sagit/Distar.git") } +use lib 'Distar/lib'; +use Distar 0.001; + +use ExtUtils::MakeMaker 6.57_10 (); + +author 'Yuval Kogman '; + +manifest_include '' => 'XS.xs'; +manifest_include '' => 'ppport.h'; + +1; diff --git a/xt/pod.t b/xt/pod.t new file mode 100644 index 0000000..2eb7dc2 --- /dev/null +++ b/xt/pod.t @@ -0,0 +1,8 @@ +use strict; +use warnings; + +use Test::More; + +use Test::Pod 1.14; + +all_pod_files_ok();