diff options
-rw-r--r-- | inc/MMPackageStash.pm | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/inc/MMPackageStash.pm b/inc/MMPackageStash.pm index d471114..dd658da 100644 --- a/inc/MMPackageStash.pm +++ b/inc/MMPackageStash.pm @@ -8,6 +8,8 @@ around _build_MakeFile_PL_template => sub { my $orig = shift; my $self = shift; + my $xs_version = $self->zilla->prereqs->requirements_for('runtime', 'recommends')->as_string_hash->{'Package::Stash::XS'}; + # copied from M::I my $can_cc = <<'CAN_CC'; use Config (); @@ -42,13 +44,16 @@ sub can_cc { } CAN_CC - my $template = $self->$orig(@_); - - my $xs_version = $self->zilla->prereqs->requirements_for('runtime', 'recommends')->as_string_hash->{'Package::Stash::XS'}; + my $fixup_prereqs = <<PREREQS; +\$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = $xs_version + if can_cc(); +PREREQS - $template =~ s/(WriteMakefile\()/\$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = $xs_version\n if can_cc();\n\n$1/; + my $template = $self->$orig(@_); + $template =~ s/(WriteMakefile\()/$fixup_prereqs\n$1/; + $template .= $can_cc; - return $template . $can_cc; + return $template; }; __PACKAGE__->meta->make_immutable; |