diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/DistMeta.pm | 31 | ||||
-rw-r--r-- | inc/MMPackageStash.pm | 4 |
2 files changed, 34 insertions, 1 deletions
diff --git a/inc/DistMeta.pm b/inc/DistMeta.pm new file mode 100644 index 0000000..aa340f5 --- /dev/null +++ b/inc/DistMeta.pm @@ -0,0 +1,31 @@ +package inc::DistMeta; +use Moose; + +has metadata => ( + is => 'ro', + isa => 'HashRef', + required => 1, +); + +with 'Dist::Zilla::Role::MetaProvider'; + +around BUILDARGS => sub { + my $orig = shift; + my $self = shift; + + my $params = $self->$orig(@_); + + my $zilla = delete $params->{zilla}; + my $plugin_name = delete $params->{plugin_name}; + + return { + zilla => $zilla, + plugin_name => $plugin_name, + metadata => $params, + }; +}; + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; diff --git a/inc/MMPackageStash.pm b/inc/MMPackageStash.pm index bcbc48e..de68a03 100644 --- a/inc/MMPackageStash.pm +++ b/inc/MMPackageStash.pm @@ -44,7 +44,9 @@ CAN_CC my $template = $self->$orig(@_); - $template =~ s/(WriteMakefile\()/delete \$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'}\n unless can_cc();\n\n$1/; + my $xs_version = $self->zilla->prereqs->requirements_for('runtime', 'recommends')->as_string_hash->{'Package::Stash::XS'}; + + $template =~ s/(WriteMakefile\()/\$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = $xs_version\n if can_cc();\n\n$1/; return $template . $can_cc; }; |